Я пытаюсь создать форму на Java с Swing, и у меня возникают трудности с управлением моими макетами.Как можно центрировать выравнивание компонента с SpringLayout
Я хочу иметь несколько текстовых полей с метками в центре диалога и иметь кнопки «сохранить» и «закрыть» в правом нижнем углу.
Добавление кнопок в правом нижнем углу диалога прост, но я не уверен, как выравнивать текстовые поля по центру. Я понял, что если бы не был метод центра компонентов, то я мог бы выровнять поле, вычислив центр диалогового окна, а затем обновив позицию, когда диалог будет изменен. Но я новичок в качелях, и я не уверен, как это сделать (или если это даже хорошая идея).
Как можно центрировать выравнивание моих компонентов с помощью диспетчера макетов Spring?
public class Main {
public static void main(String args[]) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
MyFrame myFrame = new MyFrame();
myFrame.setVisible(true);
}
});
}
}
Вот как выглядит кадр:
public class MyFrame extends JFrame {
JLabel label1;
JTextField field1;
JLabel label2;
JTextField field2;
JButton saveButton;
JButton closeButton;
public MyFrame() {
initLookAndFeel();
initFrameProperties();
initContent();
initLayout();
}
private initContent() {
label1= new JLabel("Label 1");
field1= new JTextField();
label1.setLabelFor(field1);
label2= new JLabel("Label 2");
field2= new JTextField();
label2.setLabelFor(field2);
saveButton = new JButton("Save");
closeButton = new JButton("Close");
closeButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent event) {
System.exit(0);
}
});
this.add(label1);
this.add(field1);
this.add(lebel2);
this.add(field2);
this.add(saveButton);
this.add(closeButton);
}
private void initLayout() {
SpringLayout layout = new SpringLayout();
this.setLayout(layout);
}
1) Чтобы лучше помочь, отправьте сообщение [MCTaRE] (http://stackoverflow.com/help/mcve) (минимальный полный тестируемый и читаемый пример). 2) Предоставьте ASCII-искусство (или изображение с простым рисунком) графического интерфейса пользователя, поскольку оно должно отображаться в наименьшем размере и (при изменении размера) с дополнительной шириной/высотой. –
@leigero Обязательно добавьте примечание '@', чтобы * уведомить человека * о новом комментарии. И в ответ на ваш запрос это более короткая версия того, что пытался передать SSCCE, так что да. Кроме того, MCTaRE размещается здесь в Stack Exchange, тогда как домен SSCCE.org, в котором размещен документ SSCCE, будет исчезать навсегда в конце февраля. –