Foro sobre Java SE > Duda sobre eventos con Java Swing y NetBeans
NetBeans genera código estándar de Swing.
Mira la sección, de solo lectura, del código generado, y verás que implementa los listeners según las normas de Swing.
Lo que sí hace es crear métodos en la sección editable, que llaman a los métodos correspondientes de la sección de solo lectura, donde se puede incluir el código necesario.
No hay ninguna necesidad de que NetBeans genere el código de los listeners, lo puedes hacer tú mismo si quieres.
Las clases que implementan los listeners son las propias de Swing. NetBeans no crea listeners propios.
Otra cuestión es que puedes crear una clase, que no es de Swing, y que implemente listeners de Swing; pero eso es un asunto diferente a la generación de código de NetBeans.
hola @shao bueno lo que genera netbeans son las llamadas clases anonimas, es decir implementas una interfaz sin necesidad de hacer una clase en un archivo de hecho lo que se crea es un objeto como ves en el mismo codigo que pusistes.
jButtonBuscar.addActionListener(new java.awt.event.ActionListener() {
//implementacion del metodo de la interfaz
public void actionPerformed(java.awt.event.ActionEvent evt) {
//metodo de la clase que crea el objeto
jButtonBuscarActionPerformed(evt);
aqui te dejo un enlace que explica bien como trabaja esto http://estebanfuentealba.wordpress.com/2009/10/31/java-clases-anidadas-y-anonimas/
beneficios de usar clases anonimas, depende de ti, algo muy llamativo de crear un objeto asi es que puede tener acceso a los metodos de la clase que crea el objeto.
me imagino que netbeans utiliza esto porque le es màs facil generar codigo asi que un nuevo archivo
espero que te ayude.
Muchas gracias jhosep, con ese link me ha quedado bastante claro lo que hace netbeans. Creo que es una manera muy buena el uso de las clases anónimas.
Una duda ....entonces tal como trabaja NetBeans...no se cumple el modelo Modelo-Vista-Controlar no???? Se cumple el modelo Modelo-VistaModelo no???? Es decir la parte del controlador se integra en la vista no???
Saludos.
Swing es MVC por diseño: modelos, vistas y controladores se declaran en clases separadas.
NetBeans no introduce ninguna variación en el diseño con Swing, puesto que los controladores que genera NetBeans son clases: tanto da si esas clases son anónimas, internas o externas.
Muchas gracias choces....es que en un libro había visto que hay una nueva variante que es...modeloVista Modelo...en la que en la vista se incluyen tanto el control de los eventos como los elementos visuales...y luego a parte en otra clase se encuentra el modelo donde se albergan los datos. ¿Alguien conoce dicho modelo?
Creo que te refieres a esto:
http://en.wikipedia.org/wiki/Model_View_ViewModel
http://es.wikipedia.org/wiki/Modelo_Vista_Controlador
http://maromasdigitales.net/2010/05/patron-mvvm-explicado/
Hola a todos,
profundizando en el tema de tratar eventos cuando realizo una interfaz gráfica me surgen las siguientes dudas acerca del código que genera NetBeans al tratar los eventos:
Si quiero capturar el evento actionPerformed de un botón NetBeans me genera lo siguiente:
jButtonBuscar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonBuscarActionPerformed(evt);
Yo puedo hacer una instancia a la interfaz ActionListener?????
Y otra duda...se supone que para poder controlar los eventos las clases deben implementar las interfaces XXXListener...siendo XXX el tipo de evento...pero..en las clases generadas por Netbeans...ninguna implementa dicha interfaz...¿Alguien me puede explicar como trata NetBeans todo esto?
Muchas gracias. Saludos.