我試圖用Java Layouts創建一個非常簡單的窗口。我有三個要素來安排:一個按鈕,一個進度條和一個標籤。該按鈕必須垂直居中,進度條必須佔滿全部寬度,並且標籤必須左對齊。請幫我理解BoxLayout對齊問題
下面是一些代碼(只是假設窗格是一個JFrame的內容窗格和按鈕,進度條和標籤之前已經創建):
BoxLayout layout = new BoxLayout(pane, BoxLayout.Y_AXIS);
pane.setLayout(layout);
button.setAlignmentX(Component.CENTER_ALIGNMENT);
pane.add(button);
progressBar.setAlignmentX(Component.CENTER_ALIGNMENT);
pane.add(progressBar);
label.setAlignmentX(Component.LEFT_ALIGNMENT);
pane.add(label);
當我測試的應用程序,我看到的一切錯位和搞砸了:按鈕和標籤是隨機縮進的,如果我調整窗口大小,縮進量會以一種奇怪的方式變化。 進度條看起來不錯(全寬)。
我只是不明白髮生了什麼事。你能給我一個線索嗎?
就個人而言,我從不相信setAlignmentX或setAlignmentY,儘量避免他們因爲瘟疫,我也避免了佈局管理器是完全依賴他們。 – jfpoilpret 2011-04-18 13:21:16
我現在理解你爲什麼這樣做。 ..你會建議什麼替代方案? – gd1 2011-04-18 13:22:57
那麼,如果你必須堅持純JDK,那麼我可能會在你的情況下使用GridBagLayout;這將工作得很好,因爲你的佈局很簡單(當佈局有更多組件時,GBL開始變得複雜)。否則,我會使用DesignGridLayout。 – jfpoilpret 2011-04-18 13:30:22