Estoy experimentando un siguiente problema. He diseñado una GUI en el generador de GUI de Netbeans implementado y tengo varios botones en mi programa. Si presiono uno de los botones, comenzará a ejecutar algún método que demore unos 10 segundos, pero también hay un botón para cancelar la ejecución. Pero mientras el método del Botón 1 se está ejecutando, no puedo hacer clic en ningún otro botón de mi programa, es como estar congelado y tengo que esperar hasta que el método esté listo. Creo que esto tiene algo que ver con el subproceso múltiple, ¿pueden darme una pista?
Gracias !
Respuestas
0 para la respuesta № 1Puedes usar SwingWorker
.
public class MyBackgroundWorker extends SwingWorker<Integer, String> {
@Override
protected Integer doInBackground() throws Exception {
callYourLongTimeTakingMethod();
return 0;
}
}
Ahora, en el botón de inicio del evento, cree un objeto para esto SwingWorker
clase y ejecutarlo.
objMyBGWorker = new MyBackgroundWorker();
objMyBGWorker.execute();
Y en su botón de cancelación, incluso el oyente puede llamar,
objMyBGWorker.cancel(true);