KeyListener должен работать, а затем выйти из программы, но это не так (AutoClicker) - PullRequest
0 голосов
/ 04 марта 2019

Я сделал автокликер, и он отлично работает, но я хотел добавить KeyListener, чтобы человек, который его использует, мог остановить автокликер, он должен работать с кнопкой q, но это не так!Вот код: Main.java:

import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.util.*;

public class Main{
    private static Robot roboter = null;
    public static void main(String[]args){
        JFrame jf = new JFrame();
        jf.setSize(1920, 1080);
        jf.addKeyListener(new KeyHandler());
        jf.setLocationRelativeTo(null);
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jf.requestFocus();
        Scanner SekAbstand = new Scanner(System.in);
        int SekundenAbstand;
        int EndlosSchleife = 1;
        System.out.println("Um das Programm zu stoppen druecke Q!!!");
        System.out.println("Wie lange soll der Abstand zwischen den Klicks
        sein(in Millisekunden)?");
        SekundenAbstand = SekAbstand.nextInt();
        System.out.println("Du hast 10 Sekunden um die Maus zur richtigen 
        Position zu bringen!");
        try {
            roboter = new Robot();
        } catch(AWTException e) {
            e.printStackTrace();
        }
        roboter.delay(10000);
        while(EndlosSchleife == 1) {
            roboter.delay(SekundenAbstand);
            roboter.mousePress(MouseEvent.BUTTON1_MASK);
            roboter.mouseRelease(MouseEvent.BUTTON1_MASK);
        }
    }
}

KeyHandler.java:

import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

public class KeyHandler implements KeyListener {
    @Override
    public void keyTyped(KeyEvent e) {
        if(e.getKeyCode() == KeyEvent.VK_Q){
            System.exit(0);
        }
    }

    @Override
    public void keyPressed(KeyEvent e) {

    }

    @Override
    public void keyReleased(KeyEvent e) {

    }
}

Спасибо.

...