有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案