2013-05-03 37 views
0

我有一箇中央數據庫,我用JDBC連接到它,並在一些準備數據後,我產生6個不同的JFrames,我喜歡在不同的牆上顯示不同的顯示器我只能通過IP(通過WiFi)同時訪問該建築物。我可以用GraphicsEnvironment以某種方式解決它嗎?不同的顯示器上的不同JFrame

我會很樂意提供任何建議!

+4

你說的*「僅達到了IP」 *是什麼意思?你是指屏幕還是每個人都是不同的電腦? – MadProgrammer 2013-05-03 10:04:09

+0

只有屏幕!該程序將只在一臺主電腦上運行,並將有6個屏幕(智能電視)。 – user2346329 2013-05-03 10:59:17

+0

操作系統是否將每個屏幕都視爲獨立顯示器? – MadProgrammer 2013-05-03 11:15:14

回答

0

如果每個屏幕可以通過OS作爲一個單獨的圖形設備中可以看出,你應該能夠使用像......

import java.awt.EventQueue; 
import java.awt.GraphicsConfiguration; 
import java.awt.GraphicsDevice; 
import java.awt.GraphicsEnvironment; 
import java.awt.Rectangle; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.UIManager; 
import javax.swing.UnsupportedLookAndFeelException; 

public class TestGC { 

    public static void main(String[] args) { 
     EventQueue.invokeLater(new Runnable() { 
      @Override 
      public void run() { 
       try { 
        UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 
       } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) { 
       } 
       GraphicsDevice[] sds = GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices(); 
       for (GraphicsDevice sd : sds) { 
        System.out.println(sd.getIDstring()); 
        GraphicsConfiguration gc = sd.getDefaultConfiguration(); 
        JFrame f = new JFrame(gc); 
        f.add(new JLabel(sd.getIDstring())); 
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
        f.pack(); 
        centerOn(f, gc); 
        f.setVisible(true); 
       } 
      } 
     }); 
    } 

    private static void centerOn(JFrame f, GraphicsConfiguration gc) { 
     Rectangle bounds = gc.getBounds(); 
     int x = bounds.x + ((bounds.width - f.getWidth())/2); 
     int y = bounds.y + ((bounds.height - f.getHeight())/2); 
     f.setLocation(x, y); 
    } 
} 
相關問題