我有一个父级JPanel,其子级组件堆叠在一起。但是,它们并没有按照我的意愿调整大小:
代码:
public class LayoutTest extends JFrame {
public LayoutTest() {
setVisible(true);
setSize(new Dimension(500,500));
getcontentPane().setLayout(new BoxLayout(getcontentPane(),BoxLayout.PAGE_AXIS));
for (int i = 0; i < 2; i++) {
JPanel panel = new JPanel();
panel.setPreferredSize(new Dimension(500,50));
panel.setBorder(BorderFactory.createLineBorder(Color.BLACK));
panel.setBackground(Color.red);
getcontentPane().add(panel);
}
}
public static void main(String[] args) {
LayoutTest layoutTest = new LayoutTest();
}
}
问题主要是组件在不应该垂直调整大小的情况下。我希望他们保持垂直尺寸,但他们不会。我已经尝试了多种布局GridBagLayout,FlowLayout,BoxLayout,但它们都不起作用。
我最好的尝试是使用BoxLayout:
简单地:container.setLayout(new BoxLayout(container,BoxLayout.PAGE_AXIS);
然后container.add(component1)
...
感谢您的帮助。
camickr的工作解决方案:
public class LayoutTest extends JFrame {
public LayoutTest() {
setVisible(true);
setSize(new Dimension(500,500));
JPanel container = new JPanel();
container.setLayout(new BoxLayout(container,50));
panel.setBorder(BorderFactory.createLineBorder(Color.BLACK));
panel.setBackground(Color.red);
container.add(panel,BorderLayout.PAGE_START);
}
getcontentPane().add(container,BorderLayout.NORTH);
}
public static void main(String[] args) {
LayoutTest layoutTest = new LayoutTest();
}
}