public void executeRepeat(String s) {
this.move = s;
storeValue = move;
i = Integer.parseInt(move);
timer = new Timer(1000, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
i--;
if(i <= 0) {
move = "" + i;
if (move.trim().equals("0")) {
Thread th = new Thread(new DetectImage());
th.start();
}
timer.stop();
}
jTextField1.setText("" + i);
}
});
timer.start();
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
move = jTextField1.getText();
executeRepeat(move);
}
public static int stay = 0;
class DetectImage implements Runnable {
@Override
public void run() {
while (stay < 3) {
try {
stay++;
// few steps for comparison
Thread.sleep(1000);
} catch (InterruptedException ex) {
Logger.getLogger(TrafficMainGUI.class.getName()).log(Level.SEVERE, null, ex);
}
}
if (stay >= 3) {
stay = 0;
String store = storeValue;
TrafficMainGUI traffic = new TrafficMainGUI(store);
traffic.setVisible(true);
}
}
}
TrafficMainGUI
このスレッドからクラスを呼び出しています。全体のプロセスは順調に進んでいます。しかし、複数のフレームが開かれています。前のフレームを処分したい。スレッドクラスで破棄するためのメインメソッドにアクセスできないため、ここでこれをどのように達成する必要がありますか。