Spacing between columns of JButtons

南笙酒味 提交于 2019-12-01 22:10:40

Use two panels...

You could use two panels (for the seats) and one of the isle, for example...

JPanel left = new JPanel(new GridLayout(0, 2));
JPanel isle = new JPanel();
JPanel right = new JPanel(new GridLayout(0, 2));

for (int row = 0; row < 10; row++) {
    for (int col = 0; col < 4; col++) {
        JButton btn = new JButton("Row " + row + " seat " + col);
        if (col < 2) {
            left.add(btn);
        } else {
            right.add(btn);
        }
    }
}

setLayout(new GridLayout(1, 3));

add(left);
add(isle);
add(right);

Use a "filler" component...

You could place a "filler" component between the 2nd and 3rd columns...

setLayout(new GridLayout(0, 5));

for (int row = 0; row < 10; row++) {
    for (int col = 0; col < 4; col++) {
        JButton btn = new JButton("Row " + row + " seat " + col);
        if (col == 2) {
            add(new JPanel());
        }
        add(btn);
    }
}

Use GridBagLayout and apply insets to produce a gap...

setLayout(new GridBagLayout());

GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 0;
for (int row = 0; row < 10; row++) {
    gbc.insets = new Insets(1, 1, 1, 1);
    for (int col = 0; col < 4; col++) {
        JButton btn = new JButton("Row " + row + " seat " + col);
        if (col == 2) {
            gbc.insets = new Insets(1, 40, 1, 1);
        } else {
            gbc.insets = new Insets(1, 1, 1, 1);
        }
        add(btn, gbc);
        gbc.gridx++;
    }
    gbc.gridy++;
    gbc.gridx = 0;
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!