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

Ayuda con actionlistener soy novato

Estas en el tema de Ayuda con actionlistener soy novato en el foro de Java en Foros del Web. Buenas, tengo el siguiente problema: Cada vez que intento compilar este codigo me lanza un error sobre el actionlistener. El codigo es el siguente: import ...
  #1 (permalink)  
Antiguo 04/01/2010, 14:30
 
Fecha de Ingreso: enero-2010
Mensajes: 10
Antigüedad: 14 años, 3 meses
Puntos: 0
Pregunta Ayuda con actionlistener soy novato

Buenas, tengo el siguiente problema:

Cada vez que intento compilar este codigo me lanza un error sobre el actionlistener.

El codigo es el siguente:

import java.awt.Frame;
import java.awt.TextField;
import java.awt.Panel;
import java.awt.Button;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JOptionPane;


public class sumaobjetos implements ActionListener
{

public static void main(String args[])
{

TextField cja1 = new TextField(10);
TextField cja2 = new TextField(10);
TextField res = new TextField(10);
Button calcular = new Button("Calcular");
Frame interfaz = new Frame("xxxxxxx");
Panel cont = new Panel();
interfaz.setSize(300,300);
cont.add(cja1);
cont.add(cja2);
cont.add(res);
calcular.addActionListener(this);
cont.add(calcular);
interfaz.add(cont);
interfaz.setVisible(true);


}


public void actionPerformed(ActionEvent ev)
{
JOptionPane.showMessageDialog(null,"xxxxxx");
}

}


Gracias de antemano y ojalá puedan ayudarme
  #2 (permalink)  
Antiguo 04/01/2010, 22:00
Avatar de DiabloGuardian  
Fecha de Ingreso: noviembre-2008
Ubicación: Hidalgo
Mensajes: 215
Antigüedad: 15 años, 5 meses
Puntos: 3
Respuesta: Ayuda con actionlistener soy novato

puedes poner el error que te marca?? por que a simple vista no tienes errores
__________________
-=:[ Lo importante no es saber todo, sino saber buscar ]:=-
  #3 (permalink)  
Antiguo 05/01/2010, 03:45
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Ayuda con actionlistener soy novato

Prueba esto:

Donde tienes

calcular.addActionListener(this);

pon ...

calcular.addActionListener(new ActionListener());
  #4 (permalink)  
Antiguo 06/01/2010, 21:59
 
Fecha de Ingreso: enero-2010
Mensajes: 10
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Ayuda con actionlistener soy novato

Este es el error que me arroja "non-static variable this cannot be referenced from a static context ", y me marca el action listener como el problema.
  #5 (permalink)  
Antiguo 07/01/2010, 09:53
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Ayuda con actionlistener soy novato

Cuando llamamos a un método no estático, Java le pasa implícitamente (uséase, que nosotros ni nos enteramos) como parámetro la referencia this, que como sabemos apunta a la instancia actual. En el caso de los métodos estáticos esto no sucede, por lo que dentro del código del método no sabe qué instancia le ha llamado y por tanto no puede acceder a la copia de las variables de dicha instancia.

fuente --> http://www.programacion.com/java/tutorial/intjava/16/

¿Has probado a sustituir el this por lo que te dije?

--- edito ---

Y añado esto que he encontrado: http://jhippjava.blogspot.com/2009/0...listeners.html

Léelo con calma

Última edición por Fuzzylog; 07/01/2010 a las 11:44 Razón: añado algo nuevo
  #6 (permalink)  
Antiguo 07/01/2010, 14:31
Avatar de DiabloGuardian  
Fecha de Ingreso: noviembre-2008
Ubicación: Hidalgo
Mensajes: 215
Antigüedad: 15 años, 5 meses
Puntos: 3
Respuesta: Ayuda con actionlistener soy novato

lo que dice Fuzzylog es muy correcto...
una forma en que lo puedes solucionar es poniendo el codigo que tienes dentro del main en un metodo y dentro del main creas un objeto e invocas el metodo. por ejemplo asi

Código PHP:
Ver original
  1. import java.awt.Frame;
  2. import java.awt.TextField;
  3. import java.awt.Panel;
  4. import java.awt.Button;
  5. import java.awt.event.ActionListener;
  6. import java.awt.event.ActionEvent;
  7. import javax.swing.JOptionPane;
  8.  
  9.  
  10. public class sumaobjetos implements ActionListener
  11. {
  12.  
  13. public static void main(String args[])
  14. {
  15. sumaobjetos objeto= new sumaobjetos();
  16. sumaobjetos.initComponentes();
  17.  
  18.  
  19. }
  20.  
  21. public void initComponentes(){
  22. TextField cja1 = new TextField(10);
  23. TextField cja2 = new TextField(10);
  24. TextField res = new TextField(10);
  25. Button calcular = new Button("Calcular");
  26. Frame interfaz = new Frame("xxxxxxx");
  27. Panel cont = new Panel();
  28. interfaz.setSize(300,300);
  29. cont.add(cja1);
  30. cont.add(cja2);
  31. cont.add(res);
  32. calcular.addActionListener(this);
  33. cont.add(calcular);
  34. interfaz.add(cont);
  35. interfaz.setVisible(true);
  36. }
  37.  
  38.  
  39. public void actionPerformed(ActionEvent ev)
  40. {
  41. JOptionPane.showMessageDialog(null,"xxxxxx");
  42. }
  43.  
  44. }


pruebalo
__________________
-=:[ Lo importante no es saber todo, sino saber buscar ]:=-

Etiquetas: actionlistener
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 04:40.