zoukankan      html  css  js  c++  java
  • 按键监听类KeyListener及适配器改良方案

     导包导的恶心,真是马上要对notepad累觉不爱了,好在顺利导完。。


    监听按键信息
    //source code
    
    import java.awt.Color ;
    import java.awt.Font ;
    import java.awt.GridLayout ;
    import java.awt.event.ActionEvent ;
    import java.awt.event.ActionListener ;
    import java.awt.event.WindowListener ;
    import java.awt.event.WindowAdapter ;
    import java.awt.event.WindowEvent ;
    import java.awt.event.KeyEvent ;
    import java.awt.event.KeyListener ;
    import javax.swing.JFrame ;
    import javax.swing.JButton ;
    import javax.swing.JLabel ;
    import javax.swing.JPanel ;
    import javax.swing.JTextField ;
    import javax.swing.JTextArea ;
    import javax.swing.JScrollPane ;
    import javax.swing.JPasswordField ;
    
    class MyHandleKey extends JFrame implements KeyListener
    {
        JTextArea text = new JTextArea() ;
        public MyHandleKey()
        {
            super.setTitle("按键精灵") ;
            JScrollPane sc = new JScrollPane(text) ;
            sc.setBounds(5,5,300,200) ;
            super.add(sc) ;
            text.addKeyListener(this) ;
           
            super.addWindowListener(new WindowAdapter()
            {
               public void WindowClosing(WindowEvent e)
               {
                   System.exit(1) ;
               }
            }) ;
           
            super.setSize(400,400) ;
            super.setVisible(true) ;
        }
       
        public void keyPressed(KeyEvent e)    //按键被按下
        {
            text.append(" "+KeyEvent.getKeyText(e.getKeyCode())+" 键被按下
    ") ;
        }
       
        public void keyReleased(KeyEvent e)     //按键松开
        {
            text.append(" "+KeyEvent.getKeyText(e.getKeyCode())+"被松开
    ") ;
        }
       
        public void keyTyped(KeyEvent e)
        {
            text.append("输入的内容是:"+e.getKeyChar()+"
    ") ;
        }
    } ;
    
    class Tester
    {
       public static void main(String args[])
       {
          MyHandleKey mhk = new MyHandleKey() ;
       }
    } ;
    

    与鼠标监听同样的问题,这样写代码太冗余,下面提供适配器改良

    import java.awt.event.ActionEvent ;
    import java.awt.event.ActionListener ;
    import java.awt.event.WindowListener ;
    import java.awt.event.WindowAdapter ;
    import java.awt.event.WindowEvent ;
    import java.awt.event.KeyEvent ;
    import java.awt.event.KeyAdapter ;   //ferfect
    import java.awt.event.KeyListener ;
    import javax.swing.JTextArea ;
    import javax.swing.JFrame ;
    import javax.swing.JScrollPane ;
    import javax.swing.JPasswordField ;
    
    class MyHandleKey extends JFrame
    {
        JTextArea text = new JTextArea() ;
        public MyHandleKey()
        {
            super.setTitle("按键精灵") ;
            JScrollPane sc = new JScrollPane(text) ;
            sc.setBounds(5,5,300,200) ;
            super.add(sc) ;
            text.addKeyListener(new KeyAdapter()    //再次应用Adapter
            {
                public void keyPressed(KeyEvent e)
                {  
                    //text.setText("") ;
                    text.append(KeyEvent.getKeyText(e.getKeyCode())+" 被按下
    ") ;
                }
            }) ;
           
            super.addWindowListener(new WindowAdapter()
            {
               public void WindowClosing(WindowEvent e)
               {
                   System.exit(1) ;
               }
            }) ;
           
            super.setSize(400,400) ;
            super.setVisible(true) ;
        }
       
    } ;
    
    class Tester
    {
       public static void main(String args[])
       {
          MyHandleKey mhk = new MyHandleKey() ;
       }
    } ;
    


  • 相关阅读:
    关于'for' loop initial declaration used outside C99 mode的说明
    Qt编写安防视频监控系统50-地图配置
    当封装已成为往事
    关于Qt数据库相关开发的一些经验总结
    Qt编写安防视频监控系统49-多数据库支持
    Qt编写安防视频监控系统48-视频参数
    设计测试用例优点和缺点
    常用的七种性能测试方法
    测试资料学习网站推荐
    打印$_SERVER['REQUEST_SCHEME']为空
  • 原文地址:https://www.cnblogs.com/emoji/p/4436800.html
Copyright © 2011-2022 走看看