2
我想要得到一個垂直,頂端對齊的佈局工作。這是我有:如何使BoxLayout垂直但兒童流頂端對齊?
JPanel pane = new JPanel();
pane.setLayout(new BoxLayout(pane, BoxLayout.Y_AXIS));
MyImagePanel panelImage = new MyImagePanel();
panelImage.setSize(400, 400);
pane.add(new JComboBox());
pane.add(panelImage);
pane.add(new JButton("1"));
pane.add(new JButton("2"));
pane.add(new JButton("3"));
JFrame frame = new JFrame("Title");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(800, 600);
frame.add(pane);
frame.pack();
frame.setVisible(true);
所有控件出現,但它看起來像在其頂部和底部之間的運行時間被應用於填充所以他們有些垂直居中。這是我要去的:
-----------------------------------------------------
| ComboBox | |
------------ |
| | |
| Image | |
| | |
------------ |
| Button 1 | Any additional space fills the right |
------------ |
| Button 2 | |
------------ |
| Button 3 | |
------------ |
| |
| Any additional space fills the bottom |
| |
-----------------------------------------------------
我該如何讓BoxLayout做到這一點?
謝謝
-------------------------更新--------------- ----------
能夠使用這樣的:
Box vertical = Box.createVerticalBox();
frame.add(vertical, BorderLayout.NORTH);
vertical.add(new JComboBox());
vertical.add(new JButton("1"));
...
得到我想要的東西。
你說的意思是「任何額外的空間填充底部」你的意思是組件應該擴大,以填補空白,或者什麼都不應該出現,並且所有組件都應該保持其preferredSize? –
是啊組件會保持它們的首選大小 - 如果父窗口恰好高於所有組件的高度組合,那隻會填充空白空間。 – user291701
不要用答案更新問題。發表答案作爲答案,並接受它。 ;-) – npe