黑马程序员技术交流社区

标题: 监听键盘的连续输入 [打印本页]

作者: 张亚青    时间: 2013-3-23 12:05
标题: 监听键盘的连续输入
对窗口添加侦听器,当窗口为活动时,连续键入‘o','v','e','r'四个字母时,窗口退出。。求更好的实现代码?


以下是我自己写的代码,望指点:

  1. import java.awt.*;
  2. import java.awt.event.*;


  3. class KeyEventTest
  4. {
  5.         public static void main(String [] args)
  6.         {
  7.                 new KeyEventFrame();
  8.         }
  9. }

  10. class KeyEventFrame
  11. {
  12.         Frame f=null;
  13.         public static final String EXIT_FLAG="over";
  14.         private int ExitFlagLength= EXIT_FLAG.length();
  15.         int count=0;

  16.         KeyEventFrame()
  17.         {
  18.                 init();
  19.         }

  20.         //对KeyEventFrame窗口进行初始化
  21.         private void  init()
  22.         {
  23.                 f=new Frame("键盘事件测试:键入\""+EXIT_FLAG+"\"退出窗口");
  24.                 f.setBounds(300,200,600,300);

  25.                 addListeners();
  26.                 f.setVisible(true);
  27.         }
  28.        

  29.         private void addListeners()
  30.         {
  31.                 f.addWindowListener(new WindowAdapter()
  32.                 {
  33.                         public void windowClosing(WindowEvent e)
  34.                         {
  35.                                 System.out.println("点击‘X’-->退出窗口");
  36.                                 System.exit(0);
  37.                         }
  38.                 });

  39.                 f.addKeyListener(new KeyAdapter()
  40.                 {
  41.                         public void keyTyped(KeyEvent e)
  42.                         {
  43.                                 char c=e.getKeyChar();

  44.                                 if (EXIT_FLAG.charAt(count)==c)
  45.                                 {
  46.                                         count++;
  47.                                         if (count==ExitFlagLength)
  48.                                                 System.exit(0);
  49.                                 }else{
  50.                                         count=0;
  51.                                 }

  52.                                 System.out.println(c+"---->"+count);
  53.                                


  54.                         }
  55.                        
  56.                 });

  57.         }


  58. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2