Ver Mensaje Individual
  #2 (permalink)  
Antiguo 04/02/2014, 01:59
Avatar de chuidiang
chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: ActionListener

Hola:

Efectivamente, no es posible ActionListener ac = new ActionListener(); ni la otra variante que pones, pero sí es posible

Código Java:
Ver original
  1.    public void actionPeformed(ActionEvent e) {
  2.             .....
  3.    }
  4. }

es una forma que permite java de implementar una interfaz sobre la marcha, sin necesidad de tener que crear explícitamente una clase. Inmediatamente despues de new ActionListener() debes abrir una llave {, implementar TODOS los métodos de la interfaz o los métodos abstractos si en vez de interfaz fuera una clase abstracta, y finalmente cerrar la }

Puedes hacerlo también sin necesidad de guardarla en una variable, puedes hacerlo directamente como parámetro de un método que es la segunda opción que muestras

Código Java:
Ver original
  1. addActionListener(new ActionLIstener() {
  2.    public void actionPeformed(ActionEvent e) {
  3.             .....
  4.    }
  5. });

Este tipo de clases así definidas se llaman clases anónimas, puesto que se crean sobre la marcha y no tienen nombre. En los .class generados, si haces esto por ejemplo en un fichero Ventana.java, verás Ventana.class y Ventana$1.class, donde Ventana.class es la clase compilada de tu fichero Ventana.java y Ventana$1.class sería una de esas clases anónimas definidas dentro de Ventana.java

Se bueno.
__________________
Apuntes Java
Wiki de Programación