键盘操作也是最常用的用户交互方式,例如键盘按下、释放等,这些操作被定义为键盘事件。JDK 中提供了一个 KeyEvent 类表示键盘事件,处理 KeyEvent 事件的监听器对象需要实现 KeyListener 接口或者 KeyAdapter 类。接下来通过一个案例来学习如何监听键盘事件,如下所示。

    1. import java.awt.FlowLayout;
    2. import java.awt.Frame;
    3. import java.awt.TextField;
    4. import java.awt.event.KeyAdapter;
    5. import java.awt.event.KeyEvent;
    6. public class example13 {
    7. public static void main(String[] args) {
    8. Frame frame = new Frame("KeyEvent");
    9. frame.setLayout(new FlowLayout());
    10. frame.setSize(400, 300);
    11. frame.setLocation(300, 200);
    12. frame.setVisible(true);
    13. //创建文本框对象
    14. TextField tf = new TextField(30);
    15. //为文本框注册键盘事件监听器
    16. frame.add(tf);
    17. tf.addKeyListener(new KeyAdapter() {
    18. public void keyPressed(KeyEvent e) {
    19. int KeyCode = e.getKeyCode(); //返回所按键对应的整数值
    20. String s = KeyEvent.getKeyText(KeyCode); //返回按键的字符串描述
    21. System.out.println("输入的内容为:" + s + ",");
    22. System.out.println("对应的 KeyCode 为:" + KeyCode + "\n");
    23. }
    24. });
    25. }
    26. }

    运行程序,生成的窗口,如下图所示。
    QQ截图20200620153533.png

    上述代码块中,用到 TextComponent 类的子类——TextFileld,它只允许编辑单行文本。当在上图中的文件框中键入字符时,便触发了键盘事件。这时,KeyEvent 类通过调用 __getKeyCode()方法将**输入内容对应的整数值返回,即 keyCode。在 KeyEvent 类中还有一个静态方法 _getKeyText(int keyCode)_,它可以将按键内容String 形式返回**。