繁体   English   中英

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

[英]how to create a JPanel to fill all of its parent's width?

我想在JFrameContentPane创建一个JPanel并且我的JPanel填充所有contentPane的宽度。

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

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

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

您需要设置面板​​的最小/首选/最大尺寸,否则BoxLayout将不知道如何为面板分配适当的尺寸。 请参阅本教程

这是您可以使用的代码示例。 如果更改各种尺寸,或注释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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM