Java事件监听器

原创 Laughing  2017-11-06 15:26  阅读 30 次 评论 0 条

使用内部类实现事件监听

直接上代码吧,其实有好几种监听器,这里主要是Action,TextField,Window等等,其他的大家可以参考文章

  1. package fkjavajy.ch11.action;  
  2.   
  3. import java.awt.BorderLayout;  
  4. import java.awt.Button;  
  5. import java.awt.Frame;  
  6. import java.awt.TextField;  
  7. import java.awt.event.ActionEvent;  
  8. import java.awt.event.ActionListener;  
  9. import java.awt.event.TextEvent;  
  10. import java.awt.event.TextListener;  
  11. import java.awt.event.WindowAdapter;  
  12. import java.awt.event.WindowEvent;  
  13. import java.awt.event.WindowListener;  
  14.   
  15. public class ch11_5 {  
  16.   
  17.     private Frame frame = new Frame("测试");  
  18.     private Button button = new Button("确定");  
  19.     private TextField textField = new TextField(30);  
  20.     private Frame frame2 = new Frame("测试2");  
  21.     public static void main(String[] args) {  
  22.         // TODO Auto-generated method stub  
  23.         new ch11_5().Init();  
  24.     }  
  25.   
  26.     /** 
  27.      *  
  28.      * @author 木子网 
  29.      * @WebSite www.lisen.me 
  30.      * @Email lisen@lisen.me 
  31.      */  
  32.     public void Init() {  
  33.         button.addActionListener(new OKListner());  
  34.         textField.addTextListener(new textFieldListner());  
  35.         frame.addWindowListener(new windowListner());  
  36.         frame2.addWindowListener(new windowAdapter());  
  37.         frame.setBounds(3030200200);  
  38.         frame2.setBounds(3030200200);  
  39.         frame.add(textField);  
  40.         frame.add(button, BorderLayout.SOUTH);  
  41.         frame.pack();  
  42.         frame.setVisible(true);  
  43.     }  
  44.   
  45.     /** 
  46.      * 内部类实现事件监听 
  47.      *  
  48.      * @author 木子网 
  49.      * 
  50.      */  
  51.     class OKListner implements ActionListener {  
  52.   
  53.         @Override  
  54.         public void actionPerformed(ActionEvent e) {  
  55.             // TODO Auto-generated method stub  
  56.             textField.setText(e.getActionCommand());  
  57.             frame2.show(true);  
  58.         }  
  59.   
  60.     }  
  61.   
  62.     class textFieldListner implements TextListener {  
  63.   
  64.         @Override  
  65.         public void textValueChanged(TextEvent e) {  
  66.             // TODO Auto-generated method stub  
  67.             System.out.println(textField.getText());  
  68.         }  
  69.     }  
  70.       
  71.     class windowListner implements WindowListener{  
  72.   
  73.         @Override  
  74.         public void windowActivated(WindowEvent e) {  
  75.             // TODO Auto-generated method stub  
  76.               
  77.         }  
  78.   
  79.         @Override  
  80.         public void windowClosed(WindowEvent e) {  
  81.             // TODO Auto-generated method stub  
  82.               
  83.         }  
  84.   
  85.         @Override  
  86.         public void windowClosing(WindowEvent e) {  
  87.             // TODO Auto-generated method stub  
  88.             System.exit(0);  
  89.         }  
  90.   
  91.         @Override  
  92.         public void windowDeactivated(WindowEvent e) {  
  93.             // TODO Auto-generated method stub  
  94.               
  95.         }  
  96.   
  97.         @Override  
  98.         public void windowDeiconified(WindowEvent e) {  
  99.             // TODO Auto-generated method stub  
  100.               
  101.         }  
  102.   
  103.         @Override  
  104.         public void windowIconified(WindowEvent e) {  
  105.             // TODO Auto-generated method stub  
  106.               
  107.         }  
  108.   
  109.         @Override  
  110.         public void windowOpened(WindowEvent e) {  
  111.             // TODO Auto-generated method stub  
  112.               
  113.         }  
  114.     }  
  115.       
  116.     public class windowAdapter extends WindowAdapter{  
  117.         public void windowClosing(WindowEvent e) {  
  118.             frame2.setVisible(false);  
  119.         }  
  120.     }  
  121. }  

使用外部类实现事件监听器

监听
  1. package fkjavajy.ch11.action;  
  2.   
  3. import java.awt.TextField;  
  4. import java.awt.event.ActionEvent;  
  5. import java.awt.event.ActionListener;  
  6.   
  7. public class ch11_5_5_1 implements ActionListener{  
  8.   
  9.     public ch11_5_5_1() {  
  10.         // TODO Auto-generated constructor stub  
  11.     }  
  12.       
  13.     private TextField textField;  
  14.       
  15.     public ch11_5_5_1(TextField textField) {  
  16.         this.textField = textField;  
  17.     }  
  18.       
  19.     @Override  
  20.     public void actionPerformed(ActionEvent e) {  
  21.         // TODO Auto-generated method stub  
  22.         textField.setText("123");  
  23.     }  
  24.   
  25. }  
调用
  1. package fkjavajy.ch11.action;  
  2.   
  3. import java.awt.BorderLayout;  
  4. import java.awt.Button;  
  5. import java.awt.Frame;  
  6. import java.awt.TextField;  
  7.   
  8. public class ch11_5_5_2 {  
  9.     Frame frame = new Frame("测试");  
  10.     TextField textField = new TextField(30);  
  11.     Button button = new Button("确定");  
  12.       
  13.     public void Init() {  
  14.         frame.add(textField);  
  15.         frame.add(button,BorderLayout.SOUTH);  
  16.         button.addActionListener(new ch11_5_5_1(textField));  
  17.         frame.setVisible(true);  
  18.     }  
  19.       
  20.     public static void main(String[] args) {  
  21.         // TODO Auto-generated method stub  
  22.         new ch11_5_5_2().Init();  
  23.     }  
  24.   
  25. }  

类本身作为事件监听器类

  1. package fkjavajy.ch11.action;  
  2.   
  3. import java.awt.Frame;  
  4. import java.awt.TextArea;  
  5. import java.awt.event.WindowAdapter;  
  6. import java.awt.event.WindowEvent;  
  7.   
  8.   
  9. public class ch11_5_5_3 extends WindowAdapter {  
  10.   
  11.     Frame frame = new Frame("测试");  
  12.     TextArea textArea = new TextArea(640);  
  13.       
  14.     public void Init() {  
  15.         frame.setBounds(00200200);  
  16.         frame.add(textArea);  
  17.         frame.addWindowListener(this);  
  18.         frame.pack();  
  19.         frame.setVisible(true);  
  20.     }  
  21.       
  22.     public void windowClosing(WindowEvent e) {  
  23.         System.exit(0);  
  24.     }  
  25.       
  26.     public static void main(String[] args) {  
  27.         // TODO Auto-generated method stub  
  28.         new ch11_5_5_3().Init();  
  29.     }  
  30.       
  31. }  

匿名内部类作为事件监听器类

  1. package fkjavajy.ch11.action;  
  2.   
  3. import java.awt.Frame;  
  4. import java.awt.TextArea;  
  5. import java.awt.event.WindowAdapter;  
  6. import java.awt.event.WindowEvent;  
  7.   
  8. public class ch11_5_5_4 {  
  9.   
  10.     Frame frame = new Frame("测试");  
  11.     TextArea textArea = new TextArea(640);  
  12.       
  13.     public void Init() {  
  14.         frame.setBounds(00200200);  
  15.         frame.add(textArea);  
  16.         frame.addWindowListener(new WindowAdapter() {  
  17.             public void windowClosing(WindowEvent e) {  
  18.                 System.exit(0);  
  19.             }  
  20.         });  
  21.         frame.pack();  
  22.         frame.setVisible(true);  
  23.     }  
  24.       
  25.     public static void main(String[] args) {  
  26.         // TODO Auto-generated method stub  
  27.         new ch11_5_5_4().Init();  
  28.     }  
  29.   
  30. }  
本文地址:https://www.lisen.me/java-event-listener.html
版权声明:本文为原创文章,版权归 木子网 所有,欢迎分享本文,转载请保留出处!

发表评论


表情