首页 > 解决方案 > KeyListener 应该工作,然后退出程序,但它没有(AutoClicker)

问题描述

我制作了一个 AutoClicker,它工作正常,但我想添加一个 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) {

    }
}

谢谢你。

标签: javasystem.exit

解决方案


推荐阅读