2010-09-24 67 views

回答

4

假設你不想掩飾任務欄,你應該使用getMaximumWindowBounds。

Java API

http://www.javabeginner.com/java-swing/java-jframe-class-example

定心Jframe的

默認情況下,一個JFrame顯示在 屏幕的左上角。 要在指定的 位置顯示一個框架,可以使用JFrame 類中的 setLocation(x,y)方法。此方法將 框架的左上角放置在 位置(x,y)處。

的右上角的僞代碼看起來是這樣的:

yourJFrame.setLocation(
    GraphicsEnvironment.getMaximumWindowBounds().getWidth() - 
    yourJFrame.getWidth(), 0); 
+0

謝謝!這讓我開始了 - 傑弗裏鄭的回答解決了我的第二個問題。 – 2010-09-24 17:15:17

7

有很多關於使用GraphicsEnvironment做類似的事情的問題/答案。

您可以使用GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices()獲取所有顯示器,然後撥打GraphicsDevice#getConfigurations然後GraphicsConfiguration#getBounds獲取每臺顯示器的大小和位置,然後使用高中幾何圖形找到「正確」的顯示器。 (請注意,真正的多顯示器設置可以將它們置於任意位置。)

+0

是否保證GraphicsEnvironment.getLocalGraphicsEnvironment()。getScreenDevices()下的第一個設備將返回第一個顯示器?我問,因爲使用'高中幾何'是可能的,但如果在多顯示器平臺中實施,其中顯示器在1到10之間變化,則效率不高。 – 2010-09-24 17:18:40

+0

「最多」顯示器不明確,因爲正如我所說的,您可以將多個顯示器你想要的方式,例如在鑽石的4個頂點有4個顯示器 - 是「第一最」還是最左邊的一個?您可以使用'GraphicsEnvironment#getDefaultScreenDevice'來獲取*默認*監視器,但可以將任何監視器設置爲默認(至少在Windows中)。 – 2010-09-24 17:33:56

相關問題