Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] clase anonima y eventos awt. DUDAS XD

Estas en el tema de clase anonima y eventos awt. DUDAS XD en el foro de Java en Foros del Web. Estaba viendo las clases anonimas, y vi que se usa por ejemplo a la hora de agregar un actionlistener a un objeto, por ejemplo en ...
  #1 (permalink)  
Antiguo 11/03/2013, 19:30
Avatar de iivo94  
Fecha de Ingreso: febrero-2011
Ubicación: Argentina
Mensajes: 281
Antigüedad: 13 años, 2 meses
Puntos: 3
Pregunta clase anonima y eventos awt. DUDAS XD

Estaba viendo las clases anonimas, y vi que se usa por ejemplo a la hora de agregar un actionlistener a un objeto, por ejemplo en un boton...

Código JAVA:
Ver original
  1. BOTON1.addActionListener(new ActionListener{public void ActionPerformed(ActionEvent ae){...}}; //algo asi

antes lo hacia

Código JAVA:
Ver original
  1. BOTON1.addActionListener(this); //y despues escribia actionperformed en esta misma clase


supongo que el metodo addActionListener, recibe por argumento un objeto y de ese objeto busca el metodo actionperformed(lo pense mientras me bañaba xd), en el caso primero, con la clase anonima, seria el objeto relacionado con la clase anonima, y haria lo que dice actionperformed directamente, pero con THIS, que es lo que hace? crea un objeto sin referencia de la clase en la que esta pasando todo eso? porque this llama al constructor no? en este caso hace eso? si no es asi no entiendo como es que funciona esto XD... si alguien me lo puede explicar le agradesco. :P
  #2 (permalink)  
Antiguo 11/03/2013, 23:37
Avatar de ipraetoriux  
Fecha de Ingreso: abril-2010
Ubicación: ipraetoriux.com
Mensajes: 1.125
Antigüedad: 14 años
Puntos: 155
Respuesta: clase anonima y eventos awt. DUDAS XD

...pues haber, explicándotelo de forma muy sencilla...ActionListener es una interfaz que se usa para manejar eventos que se generan cuando se produce una acción sobre un elemento del programa...existen dos formas de usar un ActionListener...

Código JAVA:
Ver original
  1. JButton button = new JButton("Limpiar");
  2. button.addActionListener(this);

Aca implementas addActionListener, y como argumentos pasas "this", en este caso "this" hace referencia a la implementación de la interface ActionListener...

Hay otra forma de hacer lo mismo que es pasando una clase anónima, que por lo general es lo mas usado...

Código JAVA:
Ver original
  1. button.addActionListener (new ActionListener()
  2.        {
  3.          public void actionPerformed (ActionEvent e)
  4.          {
  5.            
  6.             // Aquí codigo
  7.          
  8.          }
  9.        });

Recuerda que en general siempre es bueno ir leyendo el API y analizando los distintos métodos, como se forman, sus parametros, etc. Por lo general la gente siempre tiene problemas con el concepto de sobre carga de métodos y los distintos tipos de parámetros que pueden recibir ...espero haberte sido de ayuda
  #3 (permalink)  
Antiguo 12/03/2013, 07:18
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: clase anonima y eventos awt. DUDAS XD

Hola:

this no llama al constructor, es sólo una especie de variable predefinida que tienen todos los objetos para referirse a sí mismos. En tu ejemplo, la clase estaría pasando al actionListener a sí misma.

Código java:
Ver original
  1. public class UnaClase implements ActionListener {
  2.     public void actionPerformed(ActionEvent e) {
  3.          // codigo del boton
  4.     }
  5.  
  6.     public void algunMetodo() {
  7.         // this es esta misma clase/objeto y podemos pasarlo porque implementa ActionListener
  8.         boton.addActionListener(this);
  9.     }
  10. }


Es una excepción en los constructores, si como primera línea del constructor usas this con paréntesis (y parámetros si los requiere), entonces sí estaría llamando a otro constructor de la misma clase, de acuerdo a los parámetros

Código java:
Ver original
  1. public class UnaClase {
  2.    // Un constructor
  3.    public UnaClase (int unParemtro) {
  4.        .....
  5.    };
  6.  
  7.    // Otro constructor
  8.    public UnaClase ()  {
  9.       this(22); //Llama al constructor que admite un entero, pasandole un 22
  10.    }
  11. }

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #4 (permalink)  
Antiguo 12/03/2013, 11:57
Avatar de iivo94  
Fecha de Ingreso: febrero-2011
Ubicación: Argentina
Mensajes: 281
Antigüedad: 13 años, 2 meses
Puntos: 3
Respuesta: clase anonima y eventos awt. DUDAS XD

entonces solo this se refiere a un constructor en la primera linea de otro constructor... igual queria saber mas de como funcionan esas cosas pero POR ADENTRO , no importa gracias chuidi xD, y el otro gracias aunque ya lo sabia lo que me explicaste :P
  #5 (permalink)  
Antiguo 13/03/2013, 23:59
Avatar de ipraetoriux  
Fecha de Ingreso: abril-2010
Ubicación: ipraetoriux.com
Mensajes: 1.125
Antigüedad: 14 años
Puntos: 155
Respuesta: clase anonima y eventos awt. DUDAS XD

Cita:
Iniciado por iivo94 Ver Mensaje
...y el otro gracias aunque ya lo sabia lo que me explicaste :P
..sisi, se nota!!!...
  #6 (permalink)  
Antiguo 14/03/2013, 10:50
Avatar de iivo94  
Fecha de Ingreso: febrero-2011
Ubicación: Argentina
Mensajes: 281
Antigüedad: 13 años, 2 meses
Puntos: 3
Pregunta Respuesta: clase anonima y eventos awt. DUDAS XD

Cita:
Iniciado por ipraetoriux Ver Mensaje
..sisi, se nota!!!...
si te fijas, lo que me pusiste vos lo puse yo tambien en el primer post, lo que yo queria saber es como funcionaba this en el argumento del metodo, que me lo dijo chuidi, y otras cosas pero solo me volviste a escribir lo que yo habia puesto XD!, igual te agradezco que hayas querido ayudar

Etiquetas: awt, clase, clases, dudas, eventos, metodo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:47.