このアプリケーションには2つのスレッドがあります。ここに表示されている方法は、マウスを動かすために4秒ごとに自動クリッカーメソッドを一時停止するメソッドを呼び出します。私はあなたがGUI停止ボタンをクリックすると、タイマーを停止したい。 今すぐ停止してからもう一度起動すると、コードを実行する2つのタイマーがあります。等々。Javaスイングタイマーを停止する方法
アクションリスナースタフ。
class MyButtonListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource().equals(view.getBtnStart()))
{
autoClick.unTerminate();
bool = true;
getInfo();
}
if (e.getSource().equals(view.getBtnExit()))
{
System.exit(0);
}
if (e.getSource().equals(view.getBtnStop()))
{
bool = false;
autoClick.terminate();
}
}//end of actionPerformed
}//end of inner class
スレッド
Thread t2 = new Thread(new Runnable() {
@Override
public void run() {
Timer timer = new Timer(4000, new ActionListener() {//301000 5minutes and 1second
@Override
public void actionPerformed(ActionEvent evt) {
autoClick.timeOverload();
}
});
//if (!bool){timer.stop();}
timer.setRepeats(true); //false only repeates once
timer.start();
}
});//end of t2
それは繰り返しtimeOverloadメソッドを呼び出します。
お時間をいただきありがとうございました。
タイマーをスレッド 'final'の外に構築して[' stop']できるようにすると(https://docs.oracle.com/javase/7/docs/api/javax/swing/Timer.html) #stop())彼は、これを行います。または、それが自分自身を '停止する '必要がある場合は'ブール値 'を使ってチェックすることができます – AxelH
@AxelH私はあなたが意味すると思ったことを試しましたが、私はそれを行う正しい方法を見つけるように見えませんでした。あなたが気にしないなら、例は素晴らしいでしょう。 – Hades
私はできますが、私はそれのために[mcve]が必要です。 GUIや 'autoClick'インスタンスはなく、スレッドとタイマーのみを使ってサンプルを提供できますか? – AxelH