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


  • 相关阅读:
    C++模板学习之优先队列实现
    static 和const分别怎么用,类里面static和const可以同时修饰成员函数吗?
    C和C++的区别
    C++多态例子_虚函数
    转:master公式(主方法)
    C++11最常用的新特性如下
    转:哈夫曼树详解
    linux shell脚本
    linux 正则表达式
    linux shell命令
  • 原文地址:https://www.cnblogs.com/emoji/p/4436800.html
Copyright © 2011-2022 走看看