我想将16个按钮显示为4x4网格。每个按钮的大小应相同,并且间隙相等。
我已经能够设置间隙大小,但我无法减小按钮的大小。我基本上只使用它来进行组布局......
layout.setHorizontalGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(LEADING)
.addComponent(button1)
.addComponent(button5)
.addComponent(button9)
.addComponent(button13))
.addGroup(layout.createParallelGroup(LEADING)
.addComponent(button2)
.addComponent(button6)
.addComponent(button10)
.addComponent(button14))
.addGroup(layout.createParallelGroup(LEADING)
.addComponent(button3)
.addComponent(button7)
.addComponent(button11)
.addComponent(button15))
.addGroup(layout.createParallelGroup(LEADING)
.addComponent(button4)
.addComponent(button8)
.addComponent(button12)
.addComponent(button16))
);
layout.setVerticalGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(BASELINE)
.addComponent(button1)
.addComponent(button2)
.addComponent(button3)
.addComponent(button4))
.addGroup(layout.createParallelGroup(BASELINE)
.addComponent(button5)
.addComponent(button6)
.addComponent(button7)
.addComponent(button8))
.addGroup(layout.createParallelGroup(BASELINE)
.addComponent(button9)
.addComponent(button10)
.addComponent(button11)
.addComponent(button12))
.addGroup(layout.createParallelGroup(BASELINE)
.addComponent(button13)
.addComponent(button14)
.addComponent(button15)
.addComponent(button16))
有人可以用更好的方法帮助我。
答案 0 :(得分:0)
您也可以尝试使用GridLayout()。这会将所有组件排列在网格中,行和列由参数定义。您可以使用
行创建它GridLayout g = new GridLayout(rows, columns)
您需要导入AWT 所以你的代码看起来像:
GridLayout g = new GridLayout(4,4);
//Add it to your JPanel
myJpanel.setLayout(g);
//then
myJpanel.add(button1);
//the rest of your code
答案 1 :(得分:-1)
GroupLayout中每个组件的大小受三个值约束;最小尺寸,首选尺寸和最大尺寸
尝试:
button.setPreferredSize(new Dimension(50, 10));