我正在基于java机器人类创建一个类。 这样做的目的是能够发送类似的东西: “我喜欢香蕉,但不喜欢苹果(不过是黄油*)”
查看:http://docs.oracle.com/javase/6/docs/api/constant-values.html#java.awt.event.KeyEvent.VK_S
我可以看到几个事件,所以我不知道有哪个选择。 例如,“*”被称为VK_ASTERISK或VK_MULTIPLY。
因此,我想在控制台上显示按下按钮时触发的关键事件的名称。
这可能吗?
(没有对所有已知事件进行巨大的开关测试)
感谢。
答案 0 :(得分:0)
getSource()
功能可以为您提供帮助。
http://docs.oracle.com/javase/6/docs/api/java/util/EventObject.html#getSource()
答案 1 :(得分:0)
我是从这里和那里找到的部分做的,工作正常
import java.awt.BorderLayout;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class MainClass {
public static void main(String args[]) throws Exception {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JTextField nameTextField = new JTextField();
frame.add(nameTextField, BorderLayout.NORTH);
KeyListener keyListener = new KeyListener() {
public void keyPressed(KeyEvent keyEvent) {
printIt("Pressed", keyEvent);
}
public void keyReleased(KeyEvent keyEvent) {
//printIt("Released", keyEvent);
}
public void keyTyped(KeyEvent keyEvent) {
//printIt("Typed", keyEvent);
}
private void printIt(String title, KeyEvent keyEvent) {
int keyCode = keyEvent.getKeyCode();
String keyText = KeyEvent.getKeyText(keyCode);
System.out.println(title + " : " + keyText + " / " + keyEvent.getKeyChar() + " code = " + keyEvent.getKeyCode());
}
};
nameTextField.addKeyListener(keyListener);
frame.setSize(250, 100);
frame.setVisible(true);
}
}
运行它,按一个键然后查看你的eclipse控制台