Часть проблемы в том, что вы звоните Thread.sleep()
То есть переводит поток Main в спящий режим, поэтому ваше приложение перестает выполняться.
for(int i=600; i>0;
try{
Thread.sleep(1000);
String cc = ""+i;
lab1.setText(cc);
}
Поскольку ваше приложение звучит так, как будто вам нужно создать отдельный поток для запуска, который затем проснется и фактически запустит сигнал тревоги.
Может быть, попробовать что-то вроде этого:
Thread t = new Thread(() -> {
for(int i=600; i>0;i-- ){
try{
Thread.sleep(1000);
String cc = ""+i;
lab1.setText(cc);
}
catch(InterruptedException e){
System.out.println("Chyba!");
}
}
});
t.start();
Вызов Thread.sleep()
должен перевести подпоток в спящий режим и не повлиять на остальную часть вашего приложения.
Обратите внимание, что я использую обозначение стрелки (->
) для потока. Вам не нужно. Вместо этого вы можете просто создать исполняемый файл:
Runnable alarmRunnable = new Runnable() {
@Override
public void run() {
for(int i=600; i>0;i-- ){
try{
Thread.sleep(1000);
String cc = ""+i;
lab1.setText(cc);
}
catch(InterruptedException e){
System.out.println("Chyba!");
}
}
}
};
Thread t = new Thread(alarmRunnable);
t.start();
Стрелочная запись (иначе известная как лямбда), хотя я думаю, что чище.