您需要设置面板的最小/首选/最大尺寸,否则BoxLayout
将不知道如何为面板分配正确的尺寸。请参阅本教程。
这是您可以使用的代码示例。如果您更改各种尺寸,或注释setMinimumSize ()
andsetPreferredSize ()
方法调用,您将看到对面板绘制方式的影响。我将row
面板的背景设置为红色,以便您在测试期间可以轻松看到面板。
JFrame frame = new JFrame ("Test");
frame.setSize (new Dimension (500, 500));
frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
Container contentPane = frame.getContentPane ();
contentPane.setLayout (new BoxLayout (contentPane, BoxLayout.PAGE_AXIS));
JPanel row = new JPanel();
row.setBackground (Color.RED);
row.setLayout(new BoxLayout(row, BoxLayout.LINE_AXIS));
row.setMinimumSize (new Dimension (100, 100));
row.setPreferredSize (new Dimension (250, 200));
row.setMaximumSize (new Dimension (500, 300));
contentPane.add(row);
frame.setVisible (true);