package First;import javax.swing.*;
import java.awt.*;
import java.awt.event.*;public class _a8_键盘事件 {public static void main(String[] args) {new MyKey("键盘字符获取ASSIC码值");}
}class MyKey extends JFrame{JTextField jtf;MyKey(String s){super(s);jtf = new JTextField(10);jtf.addKeyListener(new Monitor4());add(jtf);this.setBounds(300, 300, 270, 160);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);}
}class Monitor4 extends KeyAdapter{public void keyPressed(KeyEvent e) {
System.out.println(e.getKeyText(e.getKeyCode())+" "+e.getKeyCode());if(e.getKeyChar() == KeyEvent.VK_ESCAPE)System.exit(0);}
}
与鼠标监听类似的是,都是用了继承适配器,而不再使用实现抽象类的方法
上面代码中标签1与标签2的功能基本相同
那为什么注释1而使用2 呢?
因为标签1 的代码实现的 按键是显示不完整的,例如当按下shift与alt键的时候:
对于标签2:
可以看出,标签2比标签1更适合使用