Tengo el siguiente método que recoge los eventos de dos botones, cuando le doy a programar el apagado me inicia la variable time cogiendome los valores de tres JComboBox, time, es un SwingWorker que revisa la hora, supuestamente cuando yo le diese a cancelar, con el comando time.cancel(true) me tendría que detener el thread, pero no es así:
Código
CheckTime time = new CheckTime(hour.getSelectedIndex(), min.getSelectedIndex(), sec.getSelectedIndex()); if(evt.getSource() == programShutdown && isStarted == false){ time.execute(); isStarted = true; } else if(evt.getSource() == cancelShutdown && isStarted == true){ time.cancel(true); isStarted = false; } }
Código
package base; import java.util.Calendar; import javax.swing.SwingWorker; public class CheckTime extends SwingWorker{ private int copyHour; private int copyMin; private int copySec; public CheckTime(int hour,int min, int sec){ copyHour = hour; copyMin = min; copySec = sec; } Calendar calendario; int thisHour; int thisMin; int thisSec; do{ try { } }while(copyHour != thisHour || copyMin != thisMin || copySec != thisSec); return null; } }
Sospecho que puede ser, que como yo genero un new time, cada vez que le de o a cancel o a programar, al darle a cancel me cancela el que genera cancel, pero no el anterior que genere con el program, pero bueno quiero escuchar segundas opiniones.
Un saludo y gracias de antemano.