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() ;
       }
    } ;
    


  • 相关阅读:
    链接的思考
    反向传播算法为什么要“反向”
    浅说机器学习理论
    体验一下5分钟快速迁移mysql近亿数据量大表的速度!!!
    (MHA+MYSQL-5.7增强半同步)高可用架构设计与实现
    MySQL-开发规范升级版
    Mysql 优化建议
    Percona XtraDB Cluster(PXC)-高可用架构设计说明
    企业级-Mysql双主互备高可用负载均衡架构(基于GTID主从复制模式)(原创)
    记一次测试环境下PXC集群问题《经验总结》
  • 原文地址:https://www.cnblogs.com/emoji/p/4436800.html
Copyright © 2011-2022 走看看