首先我要注意,我的双显示器处于自定义位置,而不是默认的从左到右。
我试图创建一个全屏独占模式游戏,但在测试中我注意到当我使用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();
}
}
答案 0 :(得分:2)
few examples关于GraphicsEnvironment
和GraphicsDevice
答案 1 :(得分:2)
但是当我使用
DISPOSE_ON_CLOSE
(并且只是一个dispose())时返回我的桌面是完全正常的
这很好。坚持下去。许多开发人员在完全没必要时使用EXIT_ON_CLOSE
。
如果DISPOSE_ON_CLOSE
无法结束JRE,则意味着其他GUI元素仍然可见,或者其他非守护程序线程正在运行。在这种情况下,通常最好明确地结束其他线程,或检查它们是否可以安全地结束。