Java Swing面板大小

时间:2012-01-23 20:28:21

标签: java swing layout-manager

您好我一直在学习Java Swing来创建一个象棋游戏来练习我的Java编程技能。

我已使用BorderLayout在JFrame的东边添加了一个JPanel,我使用setPrefferedSize(new Dimension(x,y))方法设置宽度和高度。

之后我创建了4个JPanel,并在之前创建的面板上添加了BoxLayout

我尝试使用setSize(x,y)setPreferredSize(new Dimension(x,y))设置4个面板的大小,但它可以自动更改4个面板,以适应主JPanel并在一个面板上添加JLabel它们的大小自动增加。

这是我的代码:

this.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
JPanel a = new JPanel(); 
a.setPreferredSize(new Dimension(50, 50)); //this dosent work
a.add(min);
a.setBackground(Color.red);
this.add;

JPanel b = new JPanel();   
b.setBackground(Color.blue);
this.add(b);

JPanel c = new JPanel(); 

this.add(c);

JPanel d = new JPanel();
d.setBackground(Color.black);
this.add(d);

如何更改每个面板的尺寸?

1 个答案:

答案 0 :(得分:3)

BoxLayout最适合沿单个轴布置不同尺寸的组件。来自Javadocs:

“BoxLayout尝试以首选宽度(水平布局)或高度(垂直布局)排列组件。”

这个想法是它们可能具有不同的高度(对于水平布局)并且它将占据最大高度。而且,它们肯定可能有不同的宽度。另外,BoxLayout可以处理一些呃“有趣”的填充片,例如Box.createHorizontalGlue().这些对于灵活的,可调整大小的布局实际上非常有用。但是,总而言之,BoxLayout用于灵活,可调整大小的不同大小的项目布局。

对于更简单的情况,特别是如果您希望两个首选宽度和首选高度“被尊重”,请使用GridLayout,就像其他人建议的那样。