2012-05-28 140 views

回答

3

MigLayout是你最好的朋友:http://www.miglayout.com

的代碼應該是這樣的:

JPanel panel = new JPanel(new MigLayout("wrap 2, fill", "[fill,20%][fill,80%]")); 
panel.add(panel1); 
panel.add(panel2); 
+0

據我所知你建議手動解決方案,有沒有GIU Builder的拖放佈局? – Alex

+0

如果您需要GUI構建器NetBeans有一個可以與MigLayout配合使用的工具:https://blogs.oracle.com/geertjan/entry/registering_miglayout_in_netbeans_ide但是,手動編寫代碼可能會更快,MigLayout具有非常清晰的語法這使得GUI構建器變得不那麼必要。 –

+0

NetBeans不適合,我使用eclipse。 – Alex

2

如果您在詢問桌面Java應用程序(基於Swing),則可以使用GridBagLayout - JDK提供的標準佈局。雖然有點難以理解。 http://docs.oracle.com/javase/tutorial/uiswing/layout/gridbag.html

最好的解決方案是製作你自己的佈局 - 這並不難。

+1

我只會建議GridBagLayout給我最大的敵人;)http://www.youtube.com/watch?v=UuLaxbFKAcc –

+0

就像我說的很難理解.... :)但對於這種特殊情況下它將工作突出很好 最大的好處是它包含在JDK中 如果附加依賴不是問題,那麼MIG佈局當然可以工作 – BlacKow

+0

如果您需要GUI構建器並希望保持在「標準」範圍內Swing使用NetBeans – BlacKow

2

GridBagLayout比我們更加不理解。

我曾在一個應用程序的大多數屏幕有一個頁眉頁腳和左側導航面板。然後我使用Gridbag佈局,只有在調整大小時才提供所需的行爲。曾經使用過視覺安全。

由於只有幾個gridbag約束條件會受到影響,您的兩列要求似乎是一個很好的開始使用Gridbag的條件。 如果你有更多的行/列,我建議使用一個工具來構建UI。

3

對於Swing,您將使用網格包佈局。

你有兩列,一列。

將設置網格寬度屬性,以便第一列爲.2,第二列爲.8或任何一組數字,以使第一列的值爲第二列的1/4值。

兩列的gridheight應該是相同的。

你可以用fill來試驗一下。如果您不介意UI中未填充組件的空間,請使用none。如果你想讓它們很好地調整大小,但保持.2到0.8的比例,請嘗試水平並自動保持適當的比例。

如果沒有,則嘗試將第一列的權重設置爲.2,第二列的值設置爲.8。無論用戶製作的JPanel有多大,都會保持這個比例。

讓我知道你是否需要更多幫助。

相關問題