按键监听类KeyListener及适配器改良方案

来源:互联网 发布:新手程序员刚进公司 编辑:程序博客网 时间:2024/05/17 06:53

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


监听按键信息//source codeimport 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())+" 键被按下\n") ;    }       public void keyReleased(KeyEvent e)     //按键松开    {        text.append(" "+KeyEvent.getKeyText(e.getKeyCode())+"被松开\n") ;    }       public void keyTyped(KeyEvent e)    {        text.append("输入的内容是:"+e.getKeyChar()+"\n") ;    }} ;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 ;   //ferfectimport 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())+" 被按下\n") ;            }        }) ;               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() ;   }} ;


0 0
原创粉丝点击