我在GridBagLayout中有14个按钮 . 问题是按钮从屏幕中间垂直开始,而不是从开始屏幕开始 . 我想要的也是按钮大小相同,并在两者之间增加一些空间 .
这是我的代码:
private final int MAX_TABLES = 14;
JButton [] buttonsTables = new JButton[MAX_TABLES];
frame = new JFrame("FreshPos baza podataka");
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
//Main panel
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
frame.getContentPane().add(panel);
//West panel;
JPanel panelWest = new JPanel(new GridBagLayout());
panel.add(panelWest, BorderLayout.WEST);
GridBagConstraints c = new GridBagConstraints();
c.gridx = 0;
c.gridy = 0;
c.anchor = GridBagConstraints.CENTER;
for (int i = 0; i < MAX_TABLES; i++) {
buttonsTables[i] = new JButton(tables[i]);
buttonsTables[i].setMaximumSize(new Dimension(Integer.MAX_VALUE, buttonsTables[i].getMinimumSize().height));
panelWest.add(buttonsTables[i], c);
c.gridy++;
panelWest.add(Box.createVerticalStrut(10));
}
1 回答
如果您希望按钮大小相同,请考虑使用GridLayout,其中一个带有在组件之间添加空间的构造函数:
如果绝对必须使用GridBagLayout,请将约束的fill属性设置为
GridBagConstraints.HORIZONTAL
或GridBagConstraints.BOTH
,并将anchor属性设置为GridBagConstraints.WEST
有关创建一堆JButton的示例,请将它们放在屏幕左侧的网格中:
![