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.getKeyChar()+" "+e.getKeyCode());
System.out.println(e.getKeyText(e.getKeyCode())+" "+e.getKeyCode());
//如果敲击键盘esc键的时候,退出窗口。
if(e.getKeyChar() == KeyEvent.VK_ESCAPE)
System.exit(0);
}
}
与鼠标监听类似的是,都是用了继承适配器,而不再使用实现抽象类的方法
上面代码中标签1与标签2的功能基本相同
那为什么注释1而使用2 呢?
因为标签1 的代码实现的 按键是显示不完整的,例如当按下shift与alt键的时候:
对于标签2:
可以看出,标签2比标签1更适合使用