首页 > 代码库 > Java按键事件KeyEvent
Java按键事件KeyEvent
按键事件可以利用键盘来控制和执行一些动作,或者从键盘上获取输入,只要按下,释放一个键或者在一个组件上敲击,就会触发按键事件。KeyEvent对象描述事件的特性(按下,放开,或者敲击一个键)和对应的值。java提供KeyListener接口处理按键事件。
当按下一个键时会调用KeyPressed处理器,当松开一个键时会调用KeyReleased处理器,当输入一个统一编码时会调用KeyTyped处理器。如果这个键不是统一码(如功能键,修改键,动作键和控制键)
每个按键事件有一个相关的按键字符和按键代码,分别由KeyEvent中的getKeyChar()和getKeyCode()方法返回
getKeyChar(): char 返回这个事件中和键相关的字符
getKeyCode(): int 返回这个事件中和键相关的整数键
keyPressed(e: KeyEvent) 在源组件上按下一个键后被调用
KeyReleased(e: KeyEvent) 在源组件上释放一个键后被调用
KeyTyped(e: KeyEvent) 在源组件上按下一个键然后释放该键后被调用
按键常量
VK_HOME Home键 VK_CONTROL 控制键
VK_END End键 VK_SHIFT shift键
VK_PGUP page up键 VK_BACK_SPACE 退格键
VK_PGDN page down键 VK_CAPS_LOCK 大小写锁定键
VK_UP 上箭头 VK_NUM_LOCK 小键盘锁定键
VK_DOWN 下箭头 VK_ENTER 回车键
VK_DOWN 下箭头 VK_ENTER 回车键
VK_LEFT 左箭头 VK_UNDEFINED 未知键
VK_RIGHT 右箭头 VK_F1--VK_F12 F1 -- F12
VK_ESCAPE Esc键 VK_0 --VK_9 0 --- 9
VK_TAB Tab键 VK_A --VK_Z A----Z
getKeyCode()返回定义在表中的值
getKeyChar()返回输入的字符
1 import java.awt.*; 2 import java.awt.event.*; 3 import javax.swing.*; 4 5 public class KeyEventDemo extends JFrame{ 6 private KeyboardPanel keyboardPanel = new KeyboardPanel(); 7 8 public KeyEventDemo(){ 9 add( keyboardPanel);10 11 keyboardPanel.setFocusable(true);12 13 }14 15 public static void main(String[] args){16 KeyEventDemo frame = new KeyEventDemo();17 frame.setTitle( "KeyEventDemo");18 frame.setSize(300,300);19 frame.setLocationRelativeTo( null);20 frame.setDefaultCloseOperation(JFrame. EXIT_ON_CLOSE);21 frame.setVisible( true);22 23 }24 25 static class KeyboardPanel extends JPanel{26 private int x = 100;27 private int y = 100;28 private char KeyChar = ‘A‘ ;29 30 public KeyboardPanel(){31 addKeyListener( new KeyAdapter(){32 public void keyPressed(KeyEvent e){33 switch(e.getKeyCode()){34 case KeyEvent.VK_DOWN: y += 10;break;35 case KeyEvent.VK_UP: y -= 10; break;36 case keyEvent.VK_LEFT: x -= 10; break;37 case KeyEvent.VK_RIGHT: x += 10; break;38 default: keyChar = e.getKeyChar();39 }40 41 repaint();42 }43 });44 }45 46 protected void paintComponent(Graphics g){47 super.paintComponent(g);48 49 g.setFont( new Font("TimesRoman" ,Font.PLAIN,24));50 g.drawString(String. valueOf(KeyChar), x, y);51 }52 }53 }
Java按键事件KeyEvent
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。