2011-11-14 72 views
2

我正在与这类问题斗争。我的应用程序创建两个帧。第一个是针对操作员的,它应该在正常模式下的第一台显示器上。另一种是针对“客户”的显示,并应在第二台显示器上以全屏显示。我决定使用全屏专用,因为易于使用。事情是,它很容易在监视器0上显示帧,但我无法强制选择第二个。该框架仍然显示在监视器数0不是1第二台显示器全屏独占模式中的Java帧

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

我只是跑你的代码,我可以成功地改变其屏幕的框架中弹出。如果你改变了1到0,在这条线--- >

GraphicsDevice screen = GraphicsEnvironment. 
getLocalGraphicsEnvironment().getScreenDevices()[1]; 

该帧出现在另一个监视器上。

+0

嗯,这很奇怪,因为如果我得到0它会在监视器0上,如果有1它会再次在监视器0上...也许这是操作系统的依赖。我在W7Prox64和Jdk6上运行它... – staff1703