Bom mesmo após fechar minha instancia ela continua rodando por conta de uma thread que eu criei para chamar um while:
public void nativeKeyPressed(NativeKeyEvent event) { System.out.println("Key Pressed: " + NativeKeyEvent.getKeyText(event.getKeyCode())); if (event.getKeyCode() == NativeKeyEvent.VC_BACKQUOTE) { keepPressingO = true; new Thread() { @Override public void run() { try { while (keepPressingO) { Robot robot = new Robot(); robot.keyPress(KeyEvent.VK_Q); Thread.sleep(26); robot.keyRelease(KeyEvent.VK_Q); robot.keyPress(KeyEvent.VK_W); Thread.sleep(16); robot.keyRelease(KeyEvent.VK_W); robot.keyPress(KeyEvent.VK_E); Thread.sleep(26); robot.keyRelease(KeyEvent.VK_E); } } catch (AWTException e) { e.printStackTrace(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }.start(); } if (event.getKeyCode() == NativeKeyEvent.VC_ENTER) { keepPressingO = false; } }
Alguém poderia me ajudar como eu resolvo essa situação? Como eu conseguiria por a thread para dormir quando ela sair do while ( e se voltasse pro if ela acordaria?)
E como eu conseguiria chamar essa thread dentro de um windowClosing para matar ela?