Java按键未触发事件
在编写这段代码的过程中,我意识到,如果将其放入一个jar,那么必须有一种优雅的方式来关闭程序。我已选择使用“F1”键。我在网上研究了几篇文章,发现我试图处理它的方式应该是一种可行的方法,但该程序甚至似乎没有触发事件方法。system.out.println从不显示Java按键未触发事件,java,applet,awt,keylistener,awtrobot,Java,Applet,Awt,Keylistener,Awtrobot,在编写这段代码的过程中,我意识到,如果将其放入一个jar,那么必须有一种优雅的方式来关闭程序。我已选择使用“F1”键。我在网上研究了几篇文章,发现我试图处理它的方式应该是一种可行的方法,但该程序甚至似乎没有触发事件方法。system.out.println从不显示 import java.applet.Applet; import java.awt.AWTException; import java.awt.Robot; import java.awt.event.KeyEvent; impor
import java.applet.Applet;
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.Random;
public class MouseMove extends Applet implements KeyListener{
public static Random randomGenerator = new Random();
public static int code;
public void init(){
addKeyListener(this);
}
public void keyPressed(KeyEvent evt){
code = evt.getKeyCode();
System.out.println("Key: "+KeyEvent.getKeyText(code));
if(code == KeyEvent.VK_F1){
System.exit(0);
}
}
public void keyTyped(KeyEvent e){
}
public void keyReleased(KeyEvent e){
}
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
Robot robot = new Robot();
while(true){
robot.mouseMove((int)(Math.random()*1366), (int)(Math.random()*768));
robot.delay(5000);
robot.mouseWheel((int)(Math.random()*786));
robot.delay(5000);
}
} catch (AWTException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}//main
}//class
KeyListener
仅当窗口中的组件具有焦点时才起作用
setFocusable()
JComponent
JFrame
代替JApplet
您从未创建过
MouseMove
的实例。你的主要方法就是制造机器人并开始循环。如果对象不存在,则永远无法调用它的某个方法。使用小程序时不要使用System.exit()。看一看(教程)。您需要创建.htm文档并添加
标记以运行小程序。您可以使用AppletViewer
工具或web浏览器启动该htm文档
file.htm
<applet code="MouseMove" width="200" height="200"></applet>
在我这方面,您的程序运行得很好,您需要单击一次小程序,即System.out.println();代码显示正在按下的键。我找不到任何问题。在我这方面,println()从未启动过。程序将继续无休止地执行:(我想避免任何可见的对象。我希望程序保持不可见,只在按下F1键时停止执行。我的方法不起作用吗?然后你玩安装在PC上的第一个反病毒软件。仍然在学习,认为init()会处理它。除了MouseMove move=new MouseMove();move.init()之外的任何东西在main中需要?因为它仍然没有响应,所以它会崩溃IDE,但实际上不会停止执行。有没有更好的方法来优雅地停止执行?
>appletviewer file.htm