/*
时间:2015年3月22日17:08:30
测试键盘事件:KeyEvent,理解这个类是关键
相关的接口或者类有:
KeyListener, KeyAdapter, KeyEvent,
KeyListener
用于接收键盘事件(击键)的侦听器接口。旨在处理键盘事件的类要么实现此接口(及其包含的所有方法),要么扩展抽象 KeyAdapter 类(仅重写有用的方法)。
然后使用组件的 addKeyListener 方法将从该类所创建的侦听器对象向该组件注册。按下、释放或键入键时生成键盘事件。然后调用侦听器对象中的相关方法并将该 KeyEvent 传递给它。
public static final int VK_0
VK_0 到 VK_9 与 ASCII 的‘0’到‘9’(0x30 - 0x39) 相同
public static final int VK_DOWN
用于非数字键盘向下方向键的常量。
public static final int VK_A
VK_A 到 VK_Z 与 ASCII 的‘A’到‘Z’(0x41 - 0x5A) 相同
public static final int VK_NUMPAD0
数字键盘上的0
GUI总结概略在附件图片上,请注意查看即可。
*/
import java.awt.*;
import java.awt.event.*;
public class TestKey {
public static void main(String[] args) {
new KeyFrame().launchFrame();
}
}
class KeyFrame extends Frame {
public void launchFrame() {
setSize(200, 200);
setLocation(300, 300);
addKeyListener(new MyKeyMonitor());
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.out.println("窗口正在关闭");
System.exit(-1);
}
});
setVisible(true);
}
class MyKeyMonitor extends KeyAdapter {
//重写父类方法不要敲,而是要去复制粘贴,切切1
public void keyPressed(KeyEvent e) {
int keyCode = e.getKeyCode();
switch (keyCode) {
case KeyEvent.VK_UP:
System.out.println("UP");
break;
case KeyEvent.VK_LEFT:
System.out.println("LEFT");
break;
case KeyEvent.VK_RIGHT:
System.out.println("RIGHT");
break;
case KeyEvent.VK_DOWN:
System.out.println("DOWN");
break;
case KeyEvent.VK_Z:
System.out.println("Z");
break;
case KeyEvent.VK_0:
System.out.println("0");//VK_0 到 VK_9 与 ASCII 的‘0’到‘9’(0x30 - 0x39) 相同
break;
case KeyEvent.VK_NUMPAD1:
System.out.println("数字键盘上的1");
default:
break;
}
}
}
}