我正在尝试开发一种程序,一旦满足条件,该程序就可以从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();
}
}
任何帮助将不胜感激。