никогда не используйте Thread#sleep(int)
во время EDT, конечно, если есть только этот поток, то он работает правильно (с блокировкой EDT),
Runnable r1 = new Runnable(){
public void run(){
licznik();
}
};
не так, как вы называете простой licznik();
, вы должны обернуть это таким образом
Runnable r1 = new Runnable(){
public void run(){
labeler.setText(Integer.toString(a));
}
};
но опять без Thread#sleep(int)
, у вас есть три варианта
1) изменить Thread
на javax.swing.Timer
2) измените Thread
на Runnable#Thread
, там вы можете отложить с помощью Thread#sleep(int)
, но вывод на GUI должен быть
Runnable r1 = new Runnable(){
public void run(){
labeler.setText(Integer.toString(a));
}
};
3) используйте SwingWorker , где вывод находится в EDT, и вы можете использовать Thread#sleep(int)
тоже
пример Thread # sleep (int) во время EDT
собрать все вместе
EDIT
не используйте зарезервированные слова в качестве класса, метода, переменной или любого другого имени в языках программирования (что означает cos
)
Ваш код работает, реализует все три опции, которые я публикую здесь,