如何创建一个JPanel来填充其父级的所有宽度?

时间:2013-05-31 15:37:18

标签: java swing jpanel

我想在JPanel的{​​{1}}内创建一个JFrame,我希望我的ContentPane填充JPanel的所有宽度。

我将contentPane用于BoxLayout的布局。这是我的代码:

contentPane

1 个答案:

答案 0 :(得分:-1)

您需要设置面板​​的最小/首选/最大尺寸,否则BoxLayout将不知道如何为您的面板指定正确的尺寸。请参阅this tutorial

以下是您可以使用的代码示例。如果您更改各种维度,或对setMinimumSize ()setPreferredSize ()方法调用发表评论,您将看到对面板绘制方式的影响。我将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);