• java 24


    我们创建了窗体后,就要对窗体进行操作,比如关闭窗口。而这时候就要建立监听机制:

    事件监听机制:
      A:事件源 事件发生的地方
      B:事件 就是要发生的事情
      C:事件处理 就是针对发生的事情做出的处理方案
      D:事件监听 就是把事件源和事件关联起来

    举例:人受伤事件。

    事件源:人(具体的对象)
      Person p1 = new Person("张三");
      Person p2 = new Person("李四");
    事件:受伤
      interface 受伤接口 {
          一拳();
          一脚();
          一板砖();
      }
    事件处理:
      受伤处理类 implements 受伤接口 {
        一拳(){ System.out.println("鼻子流血了,送到卫生间洗洗"); }
        一脚(){ System.out.println("晕倒了,送到通风处"); }
        一板砖(){ System.out.println("头破血流,送到医院"); }
    }
    事件监听:
      p1.注册监听(受伤接口)

     1 public class FrameDemo1 {
     2     public static void main(String[] args) {
     3         
     4         //创建窗口
     5         Frame f = new Frame("监听机制");
     6         //设置属性
     7         f.setBounds(300, 300, 300, 400);
     8         // 让窗体关闭  
     9         //用于接收窗口事件的侦听器接口  WindowListene
    10         //事件源:窗体
    11         //事件:对窗体的处理
    12         //事件处理:关闭窗口(System.exit(0));
    13         //事件监听
    14         
    15         //添加侦听器接口
    16         f.addWindowListener(new WindowListener() {
    17             
    18             public void windowOpened(WindowEvent e) {
    19                 // TODO Auto-generated method stub
    20                 
    21             }
    22             
    23             public void windowIconified(WindowEvent e) {
    24                 // TODO Auto-generated method stub
    25                 
    26             }
    27             
    28             public void windowDeiconified(WindowEvent e) {
    29                 // TODO Auto-generated method stub
    30                 
    31             }
    32             
    33             public void windowDeactivated(WindowEvent e) {
    34                 // TODO Auto-generated method stub
    35                 
    36             }
    37             //只监听关闭方法
    38             public void windowClosing(WindowEvent e) {
    39                 //关闭窗口
    40                 System.exit(0);
    41                 
    42             }
    43             
    44             public void windowClosed(WindowEvent e) {
    45                 // TODO Auto-generated method stub
    46                 
    47             }
    48             
    49             public void windowActivated(WindowEvent e) {
    50                 // TODO Auto-generated method stub
    51                 
    52             }
    53         });
    54         
    55         
    56         //显示窗口
    57         f.setVisible(true);
    58     }
    59 
    60 }

    上面那种方法,只需要使用一种方法,但却调出了接口的所有构造方法,这样太浪费
      用适配器改进 接收窗口事件的抽象适配器类。WindowAdapter
    步骤:

      创建侦听器,匿名内部类写适配器类,重写适配器类的构造方法

    代码:

    1 //创建侦听器,匿名内部类写适配器类,重写适配器类的构造方法
    2 f.addWindowListener(new WindowAdapter() {
    3 public void windowClosing(WindowEvent e) {
    4 //super.windowClosing(e);
    5 //重写方法
    6 System.exit(0);
    7 }
    8 });
    何事都只需坚持.. 难? 维熟尔。 LZL的自学历程...只需坚持
  • 相关阅读:
    P1073 最优贸易
    window.btoa()方法;使字符编码成base64的形式
    centOs7 忘记root密码
    window.addEventListener()/window.postMessage(”text“, '*')
    $(function(){})理解
    跨域资源共享/option 请求产生原因
    Angular: Can't bind to 'ngModel' since it isn't a known property of 'input'问题解决
    TypeScript
    盒子模型
    理解事件捕获等
  • 原文地址:https://www.cnblogs.com/LZL-student/p/5956310.html
Copyright © 2020-2023  润新知