• 按键监听类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() ;
       }
    } ;
    


  • 相关阅读:
    [导入]动态内存管理
    再看一个直播帖子,一个上午混没了
    这个帖子不错
    基于STM32 8通道ADC采样实现源代码(转) 以后设计参考使用
    天气基本恢复正常,可以玩了
    开始学习了
    安静的看了2天书
    慎度职场“35危机”
    书买了,估计这个星期就到了
    C语言循环的小艺术(转)
  • 原文地址:https://www.cnblogs.com/emoji/p/4436800.html
Copyright © 2020-2023  润新知