2009-07-27 65 views
0
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS)); 
+0

面板可能最有可能被替換爲「框面板= Box.createVerticalBox();」在這種情況下。 – Nate 2009-08-07 17:11:43

回答

0

BoxLayout很簡單 - BoxLayout構造函數的參數(Y_AXIS)屬於BoxLayout類,因此您需要指定該參數。有可能是另一個Y_AXIS值,這將是錯誤的使用。

這是封裝的基礎。

關於panel雙提,我不能確定。但看起來似乎是合理的,因爲佈局管理器需要知道佈局管理器需要知道它的佈局管理器是什麼(),因爲佈局管理器需要知道它應用於哪個面板(因爲它需要知道面板的內容以便智能佈置它們)。

+0

不知道,我滿意答案(在面板雙提)。對於其他佈局管理器來說並非如此,並且由於setLayout()方法本身屬於面板對象本身,所以應該就足夠了,就像其他佈局管理器所做的一樣......因此我更喜歡Gregory Mostizky的答案 – dm76 2011-01-18 12:08:12

1

panelBoxLayout的爭論有點混淆。您需要指定BoxLayout實例所連接的目標。此外,在許多基於LayoutManager2接口的方法中,BoxLayout要求傳入panel,並執行檢查,確認您傳遞的是正確的。

Y_AXIS是一個類變量,它是BoxLayout方向的兩個合法int值之一。你可以傳遞值0,但使用常量要好得多。

1

那麼主要是因爲BoxLayout是一個老API,他們知道任何更好的。

使用MigLayout,如果你有興趣在一個良好的現代化靈活的佈局管理器