/ / Java multihilo de botones - java, multihilo, swing

Botón multihilo de Java: java, multihilo, swing

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 № 1

Puedes 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);