Замена больше чем одной переменной за один раз. Это управляет мной абсолютно помешанный ! Как можно определить влияние изменения в системе, когда больше чем одна вещь была изменена?
Связанный с этим, внося изменения, которые не гарантированы наблюдениями. Почему добавляют быстрее/больше центральные процессоры, если процесс не является зависящим от ЦП?
Вам нужно добавить хотя бы один компонент, который заполнит горизонтальное пространство. Если у вас нет такого компонента, вы можете попробовать следующее:
GridBagConstraints noFill = new GridBagConstraints();
noFill.anchor = GridBagConstraints.WEST;
noFill.fill = GridBagConstraints.NONE;
GridBagConstraints horizontalFill = new GridBagConstraints();
horizontalFill.anchor = GridBagConstraints.WEST;
horizontalFill.fill = GridBagConstraints.HORIZONTAL;
panel.add(new JLabel("Left Aligned"), noFill);
panel.add(Box.createHorizontalGlue(), horizontalFill);
Если вы хотите изменить расположение компонента в ячейке, созданной GridBagLayout
используйте параметр привязки из GridBagConstraints .
У меня была такая же проблема, как и у вас. Решил ее, добавив эту панель в другую с ограничением BorderLayout и NORTH.
Ondrej
Вы можете сделать это, просто используя эту служебную банку painless-gridbag . Это также сделает ваш код с GridBagLayout намного красивее, например, следующий
PainlessGridBag gbl = new PainlessGridBag(getContentPane(), false);
gbl.row().cell(lblFirstName).cell(txtFirstName).fillX()
.cell(lblFamilyName).cell(txtFamilyName).fillX();
gbl.row().cell(lblAddress).cellXRemainder(txtAddress).fillX();
gbl.doneAndPushEverythingToTop();