Изменение размера сетки в GridBagLayout - PullRequest
2 голосов
/ 04 декабря 2011

Я просто пытаюсь добавить 3 центрированные вертикальные кнопки к GridBagLayout в java swing. Сейчас я считаю, что размер сетки по умолчанию - 3х3. Я хотел знать, смогу ли я изменить это и добавить больше столбцов и строк. Я просто хочу сделать 3 центрированные одинаково расположенные кнопки на панели.

    pane.setLayout(new GridLayout(10,1));
    // Insert a space before the first button
    for (int i = 1; i < 6; i++ ){
        pane.add(new JLabel(""));
    }
    pane.add(new Button("1"));
    pane.add(new Button("2"));
        pane.add(new Button("3"));
    // Insert a space after the last button
    pane.add(new JLabel(""));

Это было окончательное решение. Спасибо всем!

Ответы [ 2 ]

6 голосов
/ 04 декабря 2011

Я согласен с @Chris: GridLayout будет проще:

myPanel.setLayout(new GridLayout(5,1));
// Insert a space before the first button
add(new JLabel(""));
add(new Button("1"));
add(new Button("2"));
add(new Button("3"));
// Insert a space after the last button
add(new JLabel(""));
4 голосов
/ 04 декабря 2011

Просто добавьте больше значений к атрибутам весов.Это говорит о том, как раскладывать gridbag - 0 означает использование только необходимого пространства, затем все остальное пространство разделяется в соответствии с указанными весами.с gridx и gridy, установленными соответствующим образом (от 0) для новых столбцов / строк:

GridBagConstraints gbc = new GridBagConstraints();
...
gbc.gridx = 3;
gbc.gridy = 3;
...
contentPane.add(textFieldName, gbc_textFieldName);
...