我想在JPanel
的{{1}}内创建一个JFrame
,我希望我的ContentPane
填充JPanel
的所有宽度。
我将contentPane
用于BoxLayout
的布局。这是我的代码:
contentPane
答案 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);