Как в моих классах Java, так и в книгах, которые мы использовали в них, был представлен графический интерфейс с кодом, в котором активно участвовал конструктор JFrame. Стандартная техника в книгах, кажется, инициализирует все компоненты и добавляет их в JFrame в конструкторе, а также добавляет анонимные обработчики событий для обработки событий там, где это необходимо, и это то, что защищалось в моем классе.
Это кажется довольно простым для понимания и с которым легко работать при создании очень простого графического интерфейса, но, кажется, быстро становится уродливым и громоздким при создании чего-либо, кроме очень простого графического интерфейса. Вот небольшой пример кода, который я описываю:
public class FooFrame extends JFrame {
JLabel inputLabel;
JTextField inputField;
JButton fooBtn;
JPanel fooPanel;
public FooFrame() {
super("Foo");
fooPanel = new JPanel();
fooPanel.setLayout(new FlowLayout());
inputLabel = new JLabel("Input stuff");
fooPanel.add(inputLabel);
inputField = new JTextField(20);
fooPanel.add(inputField);
fooBtn = new JButton("Do Foo");
fooBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//handle event
}
});
fooPanel.add(fooBtn);
add(fooPanel, BorderLayout.CENTER);
}
}
Является ли этот тип использования конструктора лучшим способом кодирования Swing-приложения в Java? Если да, какие методы я могу использовать, чтобы убедиться, что этот тип конструктора организован и поддерживается? Если нет, то каков рекомендуемый способ создания JFrame в Java?