嗨我一直在学习Java Swing来创建一个国际象棋游戏来练习我的Java编程技巧。Java Swing面板大小
我在JFrame的东边加了一个JPanel,用BorderLayout
,我用setPrefferedSize(new Dimension(x,y))
方法来设置宽度和高度。
之后,我创建了4个JPanel,并在之前创建的面板上添加了BoxLayout
。
我试图与setSize(x,y)
和setPreferredSize(new Dimension(x,y))
设置4个板的尺寸,但它dosent工作了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);
我怎样才能改变这些面板的大小?
你正在处理的这些问题是依赖于布局的。使用“BoxLayout”是强制性的吗?对我个人而言,我会使用'GridLayout'来完成您正在尝试完成的任务。 – fireshadow52
另请参阅此[示例](http://stackoverflow.com/a/2562685/230513)和[变体](http://stackoverflow.com/a/2563350/230513);更多[这里](http://stackoverflow.com/questions/7229226/should-i-avoid-the-use-of-setpreferredmaximumminimumsize-methods-in-java-swi/7229662)。 – trashgod
那些确实是BoxLayout问题。尝试使用'Grid'布局,它将会更加符合你的期望。 – Sheriff