私のプロジェクトはJavaスイングで実行され、カウント用の2つのボタン(開始/停止)があります。
スタートボタンをクリックしたとき。実行中のスレッド (Thread-0) が 1 つあり、停止ボタンをクリックすると「Thread-0」が消えますが、開始ボタンを何度もクリックすると消えます。Thread-5、Thread-6、... Thread-10 などの多くのスレッドが実行されています。
問題 : [開始] をクリックしてカウントを停止しても問題ありません。しかし、開始を何度もクリックすると、カウントが正しくありません。
スタートボタン
private void btnStartActionPerformed(java.awt.event.ActionEvent evt) {
start();
btnStart.setEnabled(false);
btnStop.setEnabled(true);
}
停止ボタン
private void btnStopActionPerformed(java.awt.event.ActionEvent evt) {
isEnable = false;
btnStop.setEnabled(false);
btnStart.setEnabled(true);
}
start() メソッド:
isEnable = true;
Thread refreshPlan = new Thread() {
@Override
public void run() {
while(isEnable) {
try {
sleep(CYCLE_TIME * 1000);
PLAN += 1;
planValue.setText(String.valueOf(PLAN));
} catch (InterruptedException ex) {
//ignore
}
}
};
};
refreshPlan.start();
スタートボタンを何度もクリックしたときにシングルスレッドだけを実行できますか? なにか提案を?ありがとう。
私の悪い英語でごめんなさい。