找出调用哪个击键事件

时间:2013-09-03 11:32:12

标签: java

我正在基于java机器人类创建一个类。 这样做的目的是能够发送类似的东西: “我喜欢香蕉,但不喜欢苹果(不过是黄油*)”

查看:http://docs.oracle.com/javase/6/docs/api/constant-values.html#java.awt.event.KeyEvent.VK_S

我可以看到几个事件,所以我不知道有哪个选择。 例如,“*”被称为VK_ASTERISK或VK_MULTIPLY。

因此,我想在控制台上显示按下按钮时触发的关键事件的名称。

这可能吗?

(没有对所有已知事件进行巨大的开关测试)

感谢。

2 个答案:

答案 0 :(得分:0)

答案 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控制台