我正在与这种问题作斗争。我的应用创建了两个框架。第一个是操作员,它应该在正常模式下的第一个监视器上。另一种是“客户”的显示,应该在第二台显示器的全屏显示。我决定使用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);
}
答案 0 :(得分:1)
我刚刚运行了你的代码,我可以成功更改你的框架弹出的屏幕。如果你在这一行上将1改为0 --->
GraphicsDevice screen = GraphicsEnvironment.
getLocalGraphicsEnvironment().getScreenDevices()[1];
框架出现在另一台显示器上。