2012-03-14 66 views
2

我爲我的計算軟件使用了swing(Java)設計了一個用戶界面。我注意到,當我將軟件移動到筆記本電腦時,面板伸出屏幕並在嵌套面板中出現類似問題。這使得使用該軟件非常困難。我該如何解決這個問題?從計算機到計算機的面板大小變化

謝謝。

補充:代碼的某些部分如下:

public GUI() { 

      int width=1200; 
      int height=950; 
    setTitle("FEM Analysis"); 
    setSize(width, height); 
    setLayout(new BorderLayout()); 
    setLocation(20, 20); 
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
      .....} 
+3

請發表一些代碼。 – Stefan 2012-03-14 16:38:54

+3

你用什麼樣的佈局來容納面板的容器?一些示例代碼會很有幫助。您嘗試使用的各種計算機的分辨率是否相同? – JTeagle 2012-03-14 16:40:28

+7

解決方案是不設置任何JPanel或窗口大小,而是使用適當的佈局管理器並讓他們設置每個組件及其容器的preferredSizes。 – 2012-03-14 16:40:51

回答

3

你可能要考慮什麼(如果你沒有的話)用絲網尺寸縮放面板的分辨率不同的計算機之間的大小。例如,如果你聲明的寬度和高度,例如:

private final int WIDTH = Toolkit.getDefaultToolkit().getScreenSize().getWidth(); 
private final int HEIGHT = Toolkit.getDefaultToolkit().getScreenSize().getHeight(); 

然後如果相乘的寬度或高度由一個值,如(0.8),這將使您的值的80%。

下面是使用屏幕分辨率很大的指導作用:http://www.devdaily.com/blog/post/jfc-swing/java-swing-faq-how-determine-screen-size-resolution

希望這是你要找的人,並幫助......

+4

沒有錯,但通常不是一個好主意,可以手動設置任何尺寸:-) – kleopatra 2012-03-15 13:59:54

+0

感謝您的幫助,mrbeen。是的,這就是我一直在尋找的。我沒有使用屏幕尺寸來縮放尺寸。我將更正我的代碼並讓您知道結果。感謝您的鏈接。 – Hassan 2012-03-16 02:22:18

+0

方法getWidth()和getHeight()返回一個double not int – Abdelhak 2017-07-11 15:30:32

0

你可能要考慮你的GUI組件使用pack()。它自動縮小你的框架,以適應內容很好,而不是有很多空白:

public GUI() { 
    // ... 
    pack(); 
}