2011-11-14 102 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