2013-02-21 78 views
1

我有一個JFrame與佈局BorderLayout,我添加使用BorderLayout.CENTER JPanel的I有一個JPanel,使用GridLayout放置4個按鈕(使用CENTER添加)。使用佈局在Java中

這些按鈕是巨大的,佔據整個屏幕。或者,我這樣做我的方式如下:

  • 我有一個佈局空的JFrame,我設置JPanel邊界並添加它們。
  • 我有一個JPanel: 它設置它自己的邊界,因此它佔據了屏幕的中心1/2,並且只是屏幕高度的1/8。
  • 它增加了使用網格佈局按鈕,並導致按鈕的一個很好的線。

顯然,第二個選項看起來更好,但我希望以符合規範,並始終使用的佈局?如何我混定製和佈局?(或者只是解決我的問題在所有)

回答

4

當您添加componeent到BorderLayout.CENTER,將擴大,以填補未使用BorderLayout的其他部分中的容器的剩餘空間。此外,您一次只能添加一個組件到BorderLayout.CENTER。後續添加將替換以前的組件。

作爲解決您的具體問題,我建議你考慮看看A Visual Guide to Layout Managers開始。這將使您瞭解Swing API中可用的佈局。 Oracle還爲每個佈局提供了更深入的教程。通過嵌套佈局,您可以在利用其功能的同時爲UI提供任意外觀,尤其是在調整窗口大小或更改窗口時自動計算。

+0

好,謝謝,我會考慮這樣做是肯定的。但是出於好奇,按照我的方式做這件事真的有什麼不妥嗎?它已經使用了相對的部分,如果我把它當窗口重新調整大小,那麼,它似乎完美的作品更新......所以,如果我只是爲了stubburn符合有什麼「壞」關於使用setLayout的(空)除了用戶緩解? – csga5000 2013-02-21 01:43:56

+1

*「..它看起來完美無缺......」*代碼在哪裏? – 2013-02-21 01:45:21

+3

@ csga5000不是每個系統都是一樣的。系統具有不同的字體和字體度量以及分辨率差異。讓佈局經理管理這些差異要容易得多,然後必須針對每個可能的邊緣案例進行編碼...... – MadProgrammer 2013-02-21 01:47:28