Секунды не уменьшаются, программа сразу же после нажатия кнопки выдает те цифры"1:03", и дальше ничего. Пробовал break убрать, выдает "0:0".
public void TIMER_funk(int sec) {
timer_sec.schedule(new TimerTask() {
@Override
public void run() {
Platform.runLater(new Runnable() {
@Override
public void run() {
int seconds = sec;
while (--seconds > 0) {
MINUTES.setText(String.valueOf(seconds / 60));
SECONDS.setText(String.valueOf(seconds % 60));
break;
}
if(seconds % 60==1||seconds % 60==2||seconds % 60==3||seconds % 60==0){
SECONDS.setTextFill(Color.RED);}else{SECONDS.setTextFill(Color.BLACK);}
if(seconds % 60==1||seconds % 60==2||seconds % 60==3||seconds % 60==4||seconds % 60==5||seconds % 60==6||
seconds % 60==7||seconds % 60==8||seconds % 60==9){
SECONDS.setText("0"+String.valueOf(seconds % 60));
} }
}); } }, 1000, 1000);
}
Что-то вроде:
public void TIMER_funk(int sec) {
timer_sec.schedule(new TimerTask() {
@Override
public void run() {
Platform.runLater(new Runnable() {
@Override
public void run() {
if (sec > 0) {
sec--;
int minutes = sec / 60;
int seconds = sec % 60;
SECONDS.setTextFill(seconds < 4 ? Color.RED : Color.BLACK);
MINUTES.setText((minutes < 10?"0":"") + minutes);
SECONDS.setText((seconds < 10?"0":"") + seconds);
}
}
});
}
}, 1000, 1000);
}
Думаю, стоит также предусмотреть событие остановки таймера по достижении нуля.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости