Почему GridBagLayout групирует компоненты в центре?
Решил написать игру на Java AWT/Swing, которая на 70-85% будет состоять из текста (текстовая игра), чтобы закрепить изученное (я начинающий программист). Но почему-то GridBagLayout при увеличении размеров фрейма не масштабирует компоненты,а просто смещает их в центр. Можно ли это как-то исправить или это особенность GridBagLayout? Вот пример кода:
import java.awt.*;
import javax.swing.*;
public class Test {
public static void main(String[] args) {
JFrame jfm = new JFrame("Test");
jfm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
GridBagLayout gbl = new GridBagLayout();
jfm.setLayout(gbl);
GridBagConstraints gbc = new GridBagConstraints();
gbc.insets = new Insets(5,5,5,5);
gbc.fill = GridBagConstraints.BOTH;
gbc.gridx = 0;
gbc.gridy = 0;
jfm.add(new JButton("Начать игру"),gbc);
gbc.gridx = 0;
gbc.gridy = 1;
jfm.add(new JButton("Об игре"),gbc);
gbc.gridx = 0;
gbc.gridy = 2;
jfm.add(new JButton("Выход"),gbc);
jfm.setSize(250,250);
jfm.setVisible(true);
}
}
Ответы (1 шт):
Автор решения: A.Fatkullin
→ Ссылка
Укажите сколько ячеек должен занимать тот или иной компонент
gbc.weightx = 1.0;
gbc.weighty = 1.0;
Когда weightx/weighty равен 0.0 (по умолчанию) GridBagLayout помещает любое дополнительное пространство между своей сеткой ячеек и краями контейнера.
