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

No puedo añadir un MouseListener a una serie de JButtons

Estas en el tema de No puedo añadir un MouseListener a una serie de JButtons en el foro de Java en Foros del Web. Hola foreros del web , trabajo en Eclipse y seguidamente les inicio en mi problema: Tengo un JPanel al que le he puesto un GridLayout,a ...
  #1 (permalink)  
Antiguo 12/09/2011, 19:05
 
Fecha de Ingreso: diciembre-2010
Mensajes: 52
Antigüedad: 13 años, 11 meses
Puntos: 5
Pregunta No puedo añadir un MouseListener a una serie de JButtons

Hola foreros del web, trabajo en Eclipse y seguidamente les inicio en mi problema:

Tengo un JPanel al que le he puesto un GridLayout,a este GridLayout le he agregado un vector de JButton, hasta ahí bien, se me ve como quiero y todo eso, ahí van mis problemas:

1. Quiero agregarle a cada botón por separado un KeyListener, por lógica supuse que sería así pero esto no funciona.
Código Javascript:
Ver original
  1. botones= new JButton[27];
  2. for (int i=0; i<27; ++i)
  3.           botones[i].addMouseListener(this);//this es un JFrame

2. Y a la hora de hacer el mouseReleased, tengo el mismo problema mi lógica no funciona.
Código Javascript:
Ver original
  1. public void mouseReleased(MouseEvent e) {
  2. for (int i=0; i<27; ++i)
  3.         if (e.getSource()==botones[i])
  4.             ...
  5. }

Eclipse me da el error en la línea que puse el comentario.


Saludos foreros del web.
  #2 (permalink)  
Antiguo 13/09/2011, 09:48
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 16 años, 2 meses
Puntos: 188
Respuesta: No puedo añadir un MouseListener a una serie de JButtons

No me manejo demasiado con aplicaciones de escritorio, pero...

1º ¿Seguro que this está haciendo referencia al jframe y no está apuntando a otro objeto?
2º Aunque lo primero esté bien, ¿implementa el jframe la interfaz MouseListener para lograr que funcione?

y .... en todo caso, en vez de botones[i].addMouseListener(this); puedes usar botones[i].addMouseListener(MouseListener m);
  #3 (permalink)  
Antiguo 13/09/2011, 18:20
 
Fecha de Ingreso: diciembre-2010
Mensajes: 52
Antigüedad: 13 años, 11 meses
Puntos: 5
Respuesta: No puedo añadir un MouseListener a una serie de JButtons

Donde puse KeyListener quise decir MouseListener, fallo técnico, yen cuanto a tus preguntas:

1. Sí, todo eso está implementado en la clase JFrame.
2. No sé a que te refieres, soy nuevo en esto.
3. No sé como utilizar eso que me dices aunque de todas formas, lo probé y nada de nada.
  #4 (permalink)  
Antiguo 13/09/2011, 22:08
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: No puedo añadir un MouseListener a una serie de JButtons

¿Qué error te da?. De todas formas, si Tu clase no implementa la interfaz MouseListener, no puedes parar un this.

public class TuClase extends JFrame implements MouseListener {
...
}

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #5 (permalink)  
Antiguo 14/09/2011, 13:27
 
Fecha de Ingreso: diciembre-2010
Mensajes: 52
Antigüedad: 13 años, 11 meses
Puntos: 5
Respuesta: No puedo añadir un MouseListener a una serie de JButtons

¿El error que me da es esto?

Exception in thread "main" java.lang.NullPointerException
at grafico.miVentana.InstanciamosObjetosAddListeners( SVentana.java:79)


Que hace referencia a esta línea:

Código Javascript:
Ver original
  1. botones[i].addMouseListener(this);//this es un JFrame

Y lo que tú me dices, sí lo tenía puesto ya. Gracias.
  #6 (permalink)  
Antiguo 14/09/2011, 14:50
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: No puedo añadir un MouseListener a una serie de JButtons

El NullPointer en tu caso quiere decir que botones[i] es null. Al crear el array de botones, estás creando "hueco" para 27 botones, pero no los botones en sí. Estos tienes que crearlos uno a uno en un bucle

Código java:
Ver original
  1. botones= new JButton[27];
  2. for (int i=0; i<27; ++i) {
  3.           botones[i] = new JButton(......);
  4.           botones[i].addMouseListener(this);//this es un JFrame
  5. }

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #7 (permalink)  
Antiguo 14/09/2011, 15:30
 
Fecha de Ingreso: diciembre-2010
Mensajes: 52
Antigüedad: 13 años, 11 meses
Puntos: 5
Respuesta: No puedo añadir un MouseListener a una serie de JButtons

Gracias, como casi siempre, el error era una tontería de las buenas, gracias Chuidiang

Etiquetas: aniadir, jbutton, keylistener, vectores
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 10:55.