Tanto en mis clases de Java como en los libros que usamos en ellas, se diseñó una GUI con código que implicó fuertemente al constructor de JFrame. La técnica estándar en los libros parece ser inicializar todos los componentes y agregarlos al JFrame en el constructor, y agregar controladores de eventos anónimos para manejar los eventos cuando sea necesario, y esto es lo que se ha recomendado en mi clase.¿Mejores prácticas con JFrame Constructors?
Esto parece ser bastante fácil de entender, y fácil de usar cuando se crea una GUI muy simple, pero parece volverse rápidamente fea y engorrosa cuando se hace algo más que una interfaz gráfica de usuario muy simple. He aquí una pequeña muestra de código de lo que estoy describiendo:
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);
}
}
¿Es este tipo de uso del constructor de la mejor manera de codificar una aplicación Swing en Java? Si es así, ¿qué técnicas puedo usar para asegurarme de que este tipo de constructor esté organizado y pueda mantenerse? Si no, ¿cuál es la forma recomendada de abordar la preparación de un JFrame en Java?
Así que estás diciendo que no extiendas innecesariamente JFrame como he hecho anteriormente, pero en una clase separada, ¿creas un nuevo JFrame y le agregas componentes? Este parece ser un curso de acción bastante razonable para lograrlo. ¿Conoces alguna buena referencia para consultar cómo estructurar el código de swing GUI? Gracias por el aporte. –