我是java的初学者,我尝试实现以下目标:我的程序在后台不断运行(因此它甚至不是活动窗口),当我按Enter键时,它打印出一个文本。我的问题可以在标题中看到,当我将鼠标悬停在" keyPressed"在我的主要方法(我使用eclipse)。我不确定我做错了什么,也许我完全误解了这应该是怎么回事。
public class Test implements KeyListener {
private static boolean done = false;
public static void main(String[] args) {
while(!done) {
keyPressed(KeyEvent.VK_ENTER);
}
}
@Override
public void keyPressed(KeyEvent e) {
System.out.println("I got it working! I think.");
done = true;
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
}
有没有人知道我做错了什么?
答案 0 :(得分:0)
您正在调用内部方法com.dish.wsapi.WsapiJsonFileCreate.keyPressed(KeyEvent),它具有键事件作为输入,但您传递的是整数值java.awt.event.KeyEvent.VK_ENTER
答案 1 :(得分:0)
KeyEvent.VK_ENTER定义为与键盘上返回键的键代码对应的int值。正确的实现方法是创建一个新的KeyEvent对象,并在将其作为参数传递之前将KeyEvent.VK_ENTER指定为对象的键码。
Test obj = new Test();
KeyEvent e = new KeyEvent(new JButton(), 0, 0, 0, KeyEvent.VK_ENTER, '\0');
obj.keyPressed(e);