0

我想创建一个JPanel内部的 aJFrame并且ContentPane我想JPanel填充所有contentPane的宽度。

我使用BoxLayoutforcontentPane的布局。这是我的代码:

getContentPane().setLayout(new BoxLayout(), BoxLayout.PAGE_AXIS);

JPanel row = new JPanel();
row.setLayout(new BoxLayout(row, BoxLayout.LINE_AXIS));
getContentPane().add(row);
4

1 回答 1

-1

您需要设置面板​​的最小/首选/最大尺寸,否则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);
于 2013-05-31T15:41:35.177 回答