Я работаю с java swing LayoutManager GridBagLayout и столкнулся с этой проблемой. Я хочу, чтобы макет, как этотGridBagLayout ширина сетки не работает должным образом
ACC
BB
Но получить макет, как этот
ACC
B
A и B занимают одинаковое число столбцов, несмотря на B, имеющие ширина сетки 2, где ширина сетки A равна 1. Я не думаю, что между A, B и C может быть исчезающе малый столбец, потому что C начинается в столбце 1. Проблема не возникает, если ширина сетки C равна 1 вместо 2. I ' m сбиты с толку выходом.
Почему это происходит/как я могу это исправить?
JFrame test = new JFrame();
test.setSize(800,800);
test.setLayout(new GridBagLayout());
test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
GridBagConstraints c;
c = new GridBagConstraints();
c.gridx=0;
c.gridy=0;
c.fill = GridBagConstraints.BOTH;
c.weightx = 1;
c.weighty = 1;
test.add(new JButton("A"), c);
c = new GridBagConstraints();
c.gridx=0;
c.gridy=2;
c.gridwidth=2;
c.fill = GridBagConstraints.BOTH;
c.weightx = 1;
c.weighty = 1;
test.add(new JButton("B"), c);
c = new GridBagConstraints();
c.gridx=1;
c.gridy=0;
c.gridwidth=2;
c.gridheight=2;
c.fill = GridBagConstraints.BOTH;
c.weightx = 2;
c.weighty = 2;
test.add(new JButton("C"), c);
test.setVisible(true);
Вы также должны установить 'weightx = 1; weighty = 0', если вы используете 'gridwidth> 1' или' weightx = 0; weighty = 1', если вы используете 'gridheight> 1', поэтому дополнительный компонент не использует пробел. Жаль, что я не видел вашего ответа несколько дней назад :) – Matthieu