当前位置:   article > 正文

KeyEvent事件

keyevent

Java按键事件KeyEvent


按键事件可以利用键盘来控制和执行一些动作,或者从键盘上获取输入,只要按下,释放一个键或者在一个组件上敲击,就会触发按键事件。KeyEvent对象描述事件的特性(按下,放开,或者敲击一个键)和对应的值。java提供KeyListener接口处理按键事件。

 当按下一个键时会调用KeyPressed处理器,当松开一个键时会调用KeyReleased处理器,当输入一个统一编码时会调用KeyTyped处理器。如果这个键不是统一码(如功能键,修改键,动作键和控制键)
 每个按键事件有一个相关的按键字符和按键代码,分别由KeyEvent中的getKeyChar()和getKeyCode()方法返回

 getKeyChar():  char           返回这个事件中和键相关的字符
 getKeyCode():  int             返回这个事件中和键相关的整数键
  • 1
  • 2
  • 3
  • 4
  • 5

keyPressed(e: KeyEvent) 在源组件上按下一个键后被调用
KeyReleased(e: KeyEvent) 在源组件上释放一个键后被调用
KeyTyped(e: KeyEvent) 在源组件上按下一个键然后释放该键后被调用

按键常量


  • 1
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_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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

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 }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    
    
    • 1
    声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/258622
    推荐阅读
    相关标签
      

    闽ICP备14008679号