java JPanel、JFrames和Windows,天哪!
简单地说,我正在全屏制作一个游戏
我尝试使用以下代码:
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice gs = ge.getDefaultScreenDevice();
if(!gs.isFullScreenSupported()) {
System.out.println("full-screen not supported");
}
Frame frame = new Frame(gs.getDefaultConfiguration());
Window win = new Window(frame);
try {
// Enter full-screen mode
gs.setFullScreenWindow(win);
win.validate();
}
问题是,我在一个扩展JPanel的类中工作,虽然我有一个Frame类型的变量,但在类中没有Window类型的变量
我对JPanel的理解是,它在某种程度上是一个窗口,但我不能将“这”传递给gs。setFullScreenWindow(窗口赢了)。。。我该怎么做呢
有没有什么简单的方法可以使用JPanel调用它,或者类似的方法
有没有办法从我的JPanel中获取Windows类型的东西
-
编辑:以下方法更改JFrame的状态,并每10毫秒调用一次:
public void paintScreen()
{
Graphics g;
try{
g = this.getGraphics(); //get Panel's graphic context
if(g == null)
{
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setExtendedState(frame.getExtendedState()|JFrame.MAXIMIZED_BOTH);
frame.add(this);
frame.pack();
frame.setResizable(false);
frame.setTitle("Game Window");
frame.setVisible(true);
}
if((g != null) && (dbImage != null))
{
g.drawImage(dbImage, 0, 0, null);
}
Toolkit.getDefaultToolkit().sync(); //sync the display on some systems
g.dispose();
}
catch (Exception e)
{
if(blockError)
{
blockError = false;
}
else
{
System.out.println("Graphics context error: " + e);
}
}
}
我预计在if(g==null)语句(所有frame.somethingOrOther()语句)之后可能会有一些冗余或不必要的调用,任何清理建议都将不胜感激
此外,块错误看起来也是如此。我忽略了一个错误。错误只发生一次,当安装程序忽略错误的第一个实例时,这种方法可以正常工作。。。对于任何感兴趣的人,如果有人想知道是否可以删除该块,我可以在那里发布其他信息,但我不担心。。。我可能以后再查
共 (0) 个答案