0

我想让 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))

有人可以帮助我用更好的方法。

4

2 回答 2

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
于 2012-07-20T06:43:25.033 回答
-1

GroupLayout 中每个组件的大小受三个值的约束;最小尺寸、首选尺寸和最大尺寸

尝试:

button.setPreferredSize(new Dimension(50, 10));
于 2012-05-29T21:10:41.847 回答