elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  botón no me registra la clase que le indico para que lo maneje( addActionList...
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: botón no me registra la clase que le indico para que lo maneje( addActionList...  (Leído 2,067 veces)
jhonatanAsm


Desconectado Desconectado

Mensajes: 376



Ver Perfil WWW
botón no me registra la clase que le indico para que lo maneje( addActionList...
« en: 13 Agosto 2013, 02:33 am »

hola, pues el asunto es que la clase Controlador no reconoce los eventos de la  clase principal. el código es este:

Código
  1.  
  2. ...
  3. //clase principal
  4.  
  5. Controlador controlador;//variable de clase
  6. //código generado por eclipse :
  7. public static void main(String[] args) {
  8. EventQueue.invokeLater(new Runnable() {
  9. public void run() {
  10. try {
  11. Basico window = new Basico();
  12. window.frame.setVisible(true);
  13. } catch (Exception e) {
  14. e.printStackTrace();
  15. }
  16. }
  17. });
  18. }
  19. ...
  20.  
  21.                JButton btnAgregarAgencia = new JButton("Agregar Agencia");
  22. //asigno objeto de mi clase para que le gestione:
  23. btnAgregarAgencia.addActionListener(controlador);
  24. System.out.println("objeto asignado");
  25. btnAgregarAgencia.setBounds(60, 46, 123, 23);
  26. frame.getContentPane().add(btnAgregarAgencia);
  27. ...
  28.  

y el código de la clase que gestiona:

Código
  1. ...
  2. public class Controlador implements ActionListener{
  3.  
  4. public void actionPerformed(ActionEvent e){
  5. System.out.println("evento");
  6. }
  7.  

Tendrán algo que ver que estén en distintos paquetes, aunque las esté importando?.
salu2.


« Última modificación: 13 Agosto 2013, 02:53 am por jhonatanAsm » En línea

mi primer lenguaje fue ensamblador, tengo 60 años, y no creo que haya sido un error.

- La mayor complejidad de todas es hacer complejo algo que no lo es.

- El inteligente no es aquel que lo sabe todo sino aquel que sabe utilizar lo poco que sabe.
jhonatanAsm


Desconectado Desconectado

Mensajes: 376



Ver Perfil WWW
Re: botón no me registra la clase que le indico para que lo maneje( addActionList...
« Respuesta #1 en: 13 Agosto 2013, 03:18 am »

si cambio esta línea en la clase principal :

Código
  1. btnAgregarAgencia.addActionListener(controlador);
  2.  

por esto:

Código
  1. btnAgregarAgencia.addActionListener( new Controlador() );
  2.  

si funciona :o, pero alguien me puede explicar por qué?
:/


En línea

mi primer lenguaje fue ensamblador, tengo 60 años, y no creo que haya sido un error.

- La mayor complejidad de todas es hacer complejo algo que no lo es.

- El inteligente no es aquel que lo sabe todo sino aquel que sabe utilizar lo poco que sabe.
Oblivi0n


Desconectado Desconectado

Mensajes: 392

Odio las ranas.


Ver Perfil
Re: botón no me registra la clase que le indico para que lo maneje( addActionList...
« Respuesta #2 en: 13 Agosto 2013, 03:47 am »

En ningún momento haces this.controlador = new Controlador(); , o al menos no lo muestras en el código. Entonces al manejador de eventos le estas pasando un objeto nulo, lo que se traduce en que no tendrá manejador para ActionEvent.

Si le pasas un new Controlador() ya le estás pasando una instancia del controlador de ActionEvent
En línea

jhonatanAsm


Desconectado Desconectado

Mensajes: 376



Ver Perfil WWW
Re: botón no me registra la clase que le indico para que lo maneje( addActionList...
« Respuesta #3 en: 13 Agosto 2013, 04:57 am »

claro, en ningún momento creo el objeto, de esto se deduce que si a mi variable de clase controlador la declaro e inicializo, ya funcionará como esperaba. gracias.
En línea

mi primer lenguaje fue ensamblador, tengo 60 años, y no creo que haya sido un error.

- La mayor complejidad de todas es hacer complejo algo que no lo es.

- El inteligente no es aquel que lo sabe todo sino aquel que sabe utilizar lo poco que sabe.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
presionar boton de aplicacion ajena sabiendo su hwnd clase y caption « 1 2 3 »
Programación Visual Basic
rubeng 20 8,968 Último mensaje 3 Septiembre 2007, 00:46 am
por HaDeS, -
IBM registra una patente para teclados táctiles
Noticias
wolfbcn 1 1,729 Último mensaje 28 Julio 2011, 05:39 am
por WHK
Microsoft registra una patente para crear un GPS que evita los sitios peligrosos
Noticias
wolfbcn 0 1,892 Último mensaje 5 Enero 2012, 02:20 am
por wolfbcn
Alguien que se maneje con Grub?
GNU/Linux
DonSami 6 2,499 Último mensaje 18 Junio 2012, 14:48 pm
por DonSami
Avión malasio: captan señal electrónica en el Océano Índico
Noticias
Mister12 0 1,416 Último mensaje 5 Abril 2014, 21:49 pm
por Mister12
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines