全屏独占模式和双显示器设置

时间:2012-07-06 16:53:59

标签: java swing

首先我要注意,我的双显示器处于自定义位置,而不是默认的从左到右。

我试图创建一个全屏独占模式游戏,但在测试中我注意到当我使用EXIT_ON_CLOSE(和在System.exit中)时,显示器设置将从左到右重置为默认值。但是当我使用DISPOSE_ON_CLOSE(并且只是一个dispose())时,返回我的桌面是完全正常的。这是可接受的做法,还是我缺少的东西?

相关部分:

import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class FullScreenTest extends JFrame {

    public FullScreenTest() {
        GraphicsDevice screen = GraphicsEnvironment.
              getLocalGraphicsEnvironment().getDefaultScreenDevice();
        add(new JLabel("Test"));
        setDefaultCloseOperation(EXIT_ON_CLOSE);

        screen.setFullScreenWindow(this);
    }

    public static void main(String[] args) {
        FullScreenTest test = new FullScreenTest();
    }
}

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:2)

  

但是当我使用DISPOSE_ON_CLOSE(并且只是一个dispose())时返回我的桌面是完全正常的

这很好。坚持下去。许多开发人员在完全没必要时使用EXIT_ON_CLOSE

如果DISPOSE_ON_CLOSE无法结束JRE,则意味着其他GUI元素仍然可见,或者其他非守护程序线程正在运行。在这种情况下,通常最好明确地结束其他线程,或检查它们是否可以安全地结束。