您好我一直在学习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);
如何更改每个面板的尺寸?
答案 0 :(得分:3)
BoxLayout最适合沿单个轴布置不同尺寸的组件。来自Javadocs:
“BoxLayout尝试以首选宽度(水平布局)或高度(垂直布局)排列组件。”
这个想法是它们可能具有不同的高度(对于水平布局)并且它将占据最大高度。而且,它们肯定可能有不同的宽度。另外,BoxLayout可以处理一些呃“有趣”的填充片,例如Box.createHorizontalGlue().
这些对于灵活的,可调整大小的布局实际上非常有用。但是,总而言之,BoxLayout用于灵活,可调整大小的不同大小的项目布局。
对于更简单的情况,特别是如果您希望两个首选宽度和首选高度“被尊重”,请使用GridLayout,就像其他人建议的那样。