我正在与这类问题作斗争。我的应用程序创建了两个框架。第一个是给运算符(operator)的,它应该在正常模式下出现在第一个显示器上。另一个是“客户”的一种显示,应该在第二台显示器上全屏显示。我决定使用 Fullscreen Exclusive 因为简单。问题是在监视器 0 上显示框架很容易,但我无法强制选择第二个。该帧仍显示在监视器编号 0 而不是 1 中。
GraphicsDevice screen = GraphicsEnvironment.
getLocalGraphicsEnvironment().getScreenDevices()[1];
//it is in program config which display should be used.
//Of course monitor is present and listed by getScreenDevices as array[1]
JFrame frame = new JFrame("Fullscreen Display");
if (screen.isFullScreenSupported()) {
frame.dispose();
frame.setUndecorated(true);
System.out.println("FEM available on: "+ screen.getIDstring());
frame.repaint();
screen.setFullScreenWindow(frame);
}
最佳答案
我刚刚运行了你的代码,我可以成功地改变你的框架弹出的屏幕。如果你把这一行的 1 改成 0 --->
GraphicsDevice screen = GraphicsEnvironment.
getLocalGraphicsEnvironment().getScreenDevices()[1];
框架出现在另一台显示器上。
关于第二台显示器上全屏独占模式下的 Java 框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8127009/