2012-11-14 49 views
1

我正在設計一個包含兩個按順序排列的ScrollPanes的JFrame,一個在另一個之下。我正在使用使用GroupLayout的NetBeans(Matisse?)內置表單編輯器。在Swing中同等地調整兩個ScrollPanes的大小

我觀察到的結果:當調整幀大小時,首先調整底部的ScrollPane的大小,直到它消失在ScrollPane上方的按鈕以及最後的另一個Scrollpane。

我想要什麼:當調整框架的大小時,兩個滾動窗口應該調整大小相同,所以如果框架將大小改變X,我希望兩個滾動窗格都將其大小改變X/2。

這是可能的和如何? (首選GroupLayout的解決方案)

P.S .:總佈局包括放置在表格中的按鈕和標籤。所以GroupLayout已經非常有用了。

P.S .:看起來除了簡單佈局(Grid,Box)之外,最好的選擇是MigLayout。

讓我從white paper

增長和收縮 當組件沒有給出最佳尺寸是非常定製應該發生什麼引用。可以選擇將組件劃分爲增長和縮小優先級組,其中較高優先級將縮小/增長,然後再調整具有較低優先級的組件/行/列。在這些組內增加權重可以設置爲指定應該如何在該優先級組中的組件/行/列之間劃分自由空間或收縮。 ...

P.S.2:我現在正在使用MigLayout,它非常強大,我想再次推薦它。順便說一句。我發現他們的cheat sheet非常有用(所有選項解釋)。他們網站上的演示也包含許多示例和源代碼。這裏和其他許多問題可以通過MigLayout輕鬆解決。

+0

請編輯您的問題包括[SSCCE(http://sscce.org/)表現出您所描述的問題。 – trashgod

回答

3
Is this possible and how? 

使用GridLayoutGridBagLayoutBoxLayout(必須覆蓋所有MinMaxPreferredSize)和MigLayout

Is this possible and how? (Solutions for GroupLayout preferred) 

我woudln't該走這種方式,甚至可能是可能

+0

似乎有GroupLayout沒有解決方案(我試過linkSize,但不會改變行爲)。 Grid-,GridBag-和BoxLayout不允許複雜的佈局。對我來說MigLayout似乎是唯一的可能性。這有點複雜,但應該允許控制調整大小的行爲。 – Trilarion

2

網格佈局可確保元素大小均勻。用途:

JPanel panel = new JPanel(new GridLayout(2,1));

既然你想讓他們垂直對齊,即對方,2表示的行數後,和1表示列數。

然後簡單的ScrollPanes添加到面板:

panel.add(scrollPane1); 
panel.add(scrollPane2); 

有關網格佈局的文檔,看this

+0

感謝您的建議。不幸的是GridLayout對於我的任務來說太不靈活了。 – Trilarion

+0

你能給我們更多的細節嗎?也許向我們展示一些代碼。我確定我們可以幫助你。 – Goaler444

+0

你已經幫了我。謝謝!我將使用MigLayout。 – Trilarion

相關問題