Вы можете добиться этого, используя хитрость, добавив фиктивный компонент после строки и разверните его, чтобы заполнить вертикальное пространство.Также вы можете повторно использовать ограничения, нет необходимости создавать новый объект:
РЕДАКТИРОВАТЬ: хорошо, забудьте об этом :( Правильный путь, как сказали Деон Бота и БенКоле, я обновил свой код, используяякорь
Пожалуйста, НЕ примите этот ответ, примите либо Деона, либо Бена
public class MainFrame extends JFrame {
public static void main(String args[]) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
MainFrame frame = new MainFrame();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public MainFrame() {
super();
setBounds(100, 100, 500, 375);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container mainContainer = getContentPane();
mainContainer.setLayout(new GridBagLayout());
JLabel someLabel = new JLabel("Label 1:");
JTextField someText = new JTextField(30);
GridBagConstraints constraints = new GridBagConstraints();
constraints.anchor = GridBagConstraints.FIRST_LINE_START;
constraints.gridx = 0;
constraints.gridy = 0;
constraints.weightx = 1.0;
mainContainer.add(someLabel, constraints);
constraints.gridx = 1;
constraints.weightx = 1.0;
constraints.weighty = 1.0;
mainContainer.add(someText, constraints);
}
}