Java KeyListener应该工作,然后退出程序,但它没有';t(自动舔片机)
我制作了一个自动点击器,它工作得很好,但是我想添加一个KeyListener,这样使用它的人就可以停止自动点击器。它应该与按钮q一起工作,但它不能! 代码如下: Main.java:Java KeyListener应该工作,然后退出程序,但它没有';t(自动舔片机),java,system.exit,Java,System.exit,我制作了一个自动点击器,它工作得很好,但是我想添加一个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; publ
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) {
}
}
谢谢。据我所知,KeyListener只有在应用程序上有焦点时才能工作(出于安全考虑)。要做到这一点,您需要使用Java本机接口,并将关键部分写入C/C++。昆仑的问题是我不能用C/C++编程,这意味着很难实现这一点,可能是不可能的。由于安全原因,Java不允许访问。如果有人认为我错了,请纠正我。据我所知,KeyListener只有在你的应用程序有焦点时才有效(为了安全)。要做到这一点,您需要使用Java本机接口,并将关键部分写入C/C++。昆仑的问题是我不能用C/C++编程,这意味着很难实现这一点,可能是不可能的。由于安全原因,Java不允许访问。如果有人认为我错了,请纠正我。