Ver Mensaje Individual
  #3 (permalink)  
Antiguo 17/08/2008, 06:21
martaclou
 
Fecha de Ingreso: agosto-2008
Mensajes: 3
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Ignorar eventos

Hola, muchas gracias por responder.
Si, acertaste, hago un sleep para dejar la pantalla visible antes de modificarla al seguir ejecutando. Y sí setEnabled(false) hace lo que quiero (a no ser que se guarden los eventos para cuando hagas setEnabled(true)). Este es el código:

for (int i=0,i<n;i++){
buttons[i].setEnabled(false);
}

myFrame.paint(myFrame.getGraphics());

try{
Thread.sleep(3000);
}catch(Exception ex){}

for (int i=3; i<n ; i++){
buttons[i].setBackground(Color.GRAY);
}

myFrame.paint (myFrame.getGraphics());

for (int i=0 ; i<3 ; i++){
buttons[i].setEnabled(true);
buttons[i].addMouseListener(new MyMouseListener());
}

Pinto una fila de botones y los dejo visibles e inhabilitados un rato. Luego modifico todos los botones menos los tres primeros y lo muestro. Despues habilito los tres primeros botones y les añado el mouselistener. Pues bien, cuando hago esto último, si en el rato en que mostraba todos los botones pinche alguno de los tres primeros se ejecuta el mymouselistener.

Hay varias cosas que no entiendo:

- Si los botones estan inhabilitados y no dejan ser pulsados ¿por qué se guardan sus eventos?
- ¿Porqué se ejecuta el mymouselistener?, si lo añado despues...