Не могу понять, почему таймер не работает как задумано - PullRequest
0 голосов
/ 03 марта 2019

Я пытаюсь разработать программу, способную удалить запись из JTable после выполнения условия.Чтобы достичь этого, я решил использовать таймер.Я спланировал это так, что у меня есть два почти идентичных метода Timer, которые переключаются между собой при удалении или добавлении записи.Чтобы остановить наложение Timer () на себя, я создал логическую переменную «stop», которая может остановить Timer () до его вызова, так что только один экземпляр присутствует одновременно.Однако это не работает, о чем свидетельствует система, печатающая 2 x каждую секунду вместо 1, как часть моей проверки ошибок.Пожалуйста, найдите под псевдокодом:

public class Main extends javax.swing.JFrame{

boolean stop;

public void Timer(){

stop = false;

Timer timer = new Timer();

long interval = (1000) ;

timer.schedule(new TimerTask(){

    public void run() {

        if(<condition is met>){
        <remove entry>;                                         

            if(<no more entries>){
            timer.cancel();
            }

            else{
            Timer2(); // identical to Timer(), but with this line swapped to < Timer(); >
            timer.cancel();
            }
        }

        else if(stop == true){
        timer.cancel();
        }

        else{
        System.out.println("x") // used to check if Timer is working          
        }

   }
}, 0, interval); 
}    

private void AddButtonActionPerformed(java.awt.event.ActionEvent evt) {
<insert an entry into the table>
stop = true;
Timer();
}
}

Любая помощь будет высоко ценится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...