2012-01-04 352 views
2

我已經知道我希望我的圖形看起來如何,但是我一直在使用LayoutManagers搞了一會兒,似乎找不到能夠很好地工作的組合。Java佈局管理器建議

以下是設置: 1個包含2個JScrollPanes的JFrame。 ScrollPane1獲得30%的JFrame垂直空間。 ScrollPane2獲得JFrame垂直空間的70%。

每個JScrollPane都有:1個位於ScrollPane頂部中間的JLabel,1-4個位於滾動條底部的JButton以及每個滾動條中間的許多JCheckBox。

理想的情況下它看起來象下面這樣: http://i.imgur.com/f7KsC.jpg

我的問題是:你會用什麼佈局管理器對JFrame和各JScrollPane的?

編輯:所有外部工具包都必須經過我們公司的法律部門,才能納入我們的項目。我想堅持內部的Java庫。

編輯2:完成!以下是最終設置: http://i.imgur.com/5ndjx.png

我學到的是在Java中保持劃分非常重要。我對所有的物品都使用了太少的容器,希望它們能夠乾淨地放在相框上。所以我開始使用更多的面板和佈局管理器,它出現了美麗。看起來很完美。感謝大家的幫助。

+0

請注意,使用多個面板可能會經常妨礙面板之間的共謀對齊;這在您的具體情況中可能不是問題,但在通常的應用程序中,這通常是個不錯的選擇。現在我嘗試只保留一個窗口/對話框的一個面板(即一個佈局)。而且我使用「更高級」佈局管理器,例如DesignGridLayout(這對於我必須處理的大部分窗口都是完美的)。 – jfpoilpret 2012-01-10 15:47:25

+0

看看[MigLayout](http://www.miglayout.com/),它很棒。 – ninesided 2012-01-04 00:33:26

回答

3

恕我直言,我會使容器的內容窗格一個JSplitPane實例。

上半部分將由三層JComponent實例組成,並使用BoxLayout管理器與Y_AXIS對齊。頂層將使用FlowLayout管理器。中間層將由幾個並列JComponent實例組成,其中每個實例都使用BoxLayout管理器和Y_AXIS對齊。當然,圖層本身會使用FlowLayout管理器。底層將由幾個並列JComponent實例組成,並使用FlowLayout管理器。

下半部分與上半部分完全相同,因此,請考慮將所有這些邏輯封裝在單個自定義組件中。

欲瞭解更多信息,請參閱Using Layout Managers

+1

我甚至都不知道JSplitPane。現在讀一下他們,他們看起來很棒。謝謝! – anon58192932 2012-01-04 00:36:33

3

我會傾向於在每一步使用MigLayout。

+0

所有的外部庫和工具包必須經過我公司的法律部門的批准,然後才能使用/鏈接等。感謝這一點,儘管我會在家中嘗試自己的個人使用。 – anon58192932 2012-01-04 00:38:31

+1

不夠公平,儘管如果您使用的佈局足以保證所做的努力,我會建議您開始審批流程。 – 2012-01-04 00:53:48

+0

這是我第一個Java可視化項目。當我回家時,我要測試MigLayout。如果我喜歡它(聽起來像我會的),我可能會通過該過程獲得批准。 再次感謝! – anon58192932 2012-01-04 01:44:09