public class Simulation extends Thread {
private volatile boolean loopState = true;
public void stopLoop() {
loopState = false;
}
public void run() {
try {
Robot r = new Robot();
while (loopState) {
r.keyPress(KeyEvent.VK_LEFT);
r.keyRelease(KeyEvent.VK_LEFT);
sleep(50);
}
} catch (AWTException | InterruptedException e) {}
}
}
stopLoop()
以下のループを起動while
しても停止しません。呼び出しloopState
の最後にの値を出力すると、戻りますが、ループはまだ実行中です。stopLoop()
false
このコードを使用してメソッドを呼び出します。
Simulation simulation = new Simulation();
switch (PressedButtonID) {
case 14:
simulation.start();
break;
case 15:
simulation.stopLoop();
break;
}