1

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

我试图创建一个全屏独占模式游戏,但在测试中我注意到当我使用 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();
    }
}
4

2 回答 2

2
于 2012-07-06T17:01:26.667 回答
2

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

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

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

于 2012-07-06T17:19:32.913 回答