首页后端开发PHPJava AWT实现事件处理的方法是什么

Java AWT实现事件处理的方法是什么

时间2023-07-06 23:03:01发布访客分类PHP浏览652
导读:本篇内容主要讲解“Java AWT实现事件处理的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java AWT实现事件处理的方法是什么”吧! AWT的事件处...
本篇内容主要讲解“Java AWT实现事件处理的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java AWT实现事件处理的方法是什么”吧!

    AWT的事件处理

    事件处理主要是为了响应用户的操作

    • 事件对象(Event):封装了GUI组件上发生的特定事件(通常就是用户的一次操作)。

    • 事件源(组件):事件发生的场所,通常就是产生事件的组件

    • 监听器(Listener):负责监听事件源上发生的事件,并对各种事件做出相应处理的对象(对象中包含事件处理器)。

    • 事件处理器:监听器对象对接收的事件对象进行相应处理的办法。

    AWT中的事件继承图

    在程序中创建了一个实现WindowListener接口的事件监听器类MyWindowListener,当通过addWindowListener()方法将窗口与监听器对象绑定后,单击关闭按钮,会触发监听器对象的windowClosing()方法,将当前窗口隐藏并释放,从而关闭了窗口。

    代码如下

    packageAWT;
        
    importjava.awt.*;
        
    importjava.awt.event.WindowEvent;
        
    importjava.awt.event.WindowListener;
    
    publicclassExample08{
    
    publicstaticvoidmain(String[]args){
        
    Framef=newFrame("我的世界");
        
    f.setSize(400,300);
        
    f.setLocation(300,200);
        
    f.setVisible(true);
        
    //给窗口注册一个监听器
    MyWindowListenermw=newMyWindowListener();
        
    f.addWindowListener(mw);
    
    }
    
    }
    
    classMyWindowListenerimplementsWindowListener{
    
    @Override
    publicvoidwindowOpened(WindowEvente){
    
    }
    
    @Override
    publicvoidwindowClosing(WindowEvente){
        
    Windowwindow=e.getWindow();
        
    window.setVisible(false);
        
    window.dispose();
    
    }
    
    @Override
    publicvoidwindowClosed(WindowEvente){
    
    }
    
    @Override
    publicvoidwindowIconified(WindowEvente){
    
    }
    
    @Override
    publicvoidwindowDeiconified(WindowEvente){
    
    
    }
    
    @Override
    publicvoidwindowActivated(WindowEvente){
    
    }
    
    @Override
    publicvoidwindowDeactivated(WindowEvente){
    
    }
    
    }
        

    结果

    事件适配器

    为了解决生成的方法空实现的问题,jdk提供了一些适配器类,它们是监听器接口的默认实现类,这些实现类中实现了接口中所有的方法,但是方法中没有代码,程序可以通过继承适配器类来达到实现监听器接口的目的。

    packageAWT;
        
    importjava.awt.*;
        
    importjava.awt.Frame;
        
    importjava.awt.event.WindowAdapter;
        
    importjava.awt.event.WindowEvent;
        
    importjava.awt.event.WindowListener;
    
    publicclassExample08{
    
    publicstaticvoidmain(String[]args){
        
    Framef=newFrame("我的世界");
        
    f.setSize(400,300);
        
    f.setLocation(300,200);
        
    f.setVisible(true);
        
    //给窗口注册一个监听器
    MyWindowListenermw=newMyWindowListener();
        
    f.addWindowListener(mw);
    
    }
    
    }
    
    //继承WindowAdapter类,重写windowClosing()方法
    classMyWindowListener1extendsWindowAdapter{
    
    
    @Override
    publicvoidwindowClosing(WindowEvente){
        
    Windowwindow=(Window)e.getComponent();
        
    window.dispose();
    
    }
    
    }
        

    由于MyWindowListener类继承了适配器类WindowAdapter,由于实现的功能是关闭窗口,所以只需要重写windowClosing()方法,几乎所有的监听器接口都有对应的适配器类,通过继承适配器类来实现监听器接口时,需要处理那些事件,就直接重写该事件对应的方法。

    用匿名内部类实现事件处理

    上面的事件适配器中通过继承适配器类对事件源对象实现了监听,但是为了代码的简洁,可以使用匿名内部类来创建事件的监听器对象,对所发生的事件进行处理。

    为窗口添加一个具有点击事件的按钮

    packageAWT;
        
    importjava.awt.*;
        
    importjava.awt.event.MouseAdapter;
        
    importjava.awt.event.MouseEvent;
    
    publicclassNiMing{
    
    publicstaticvoidmain(String[]args){
        
    Framef=newFrame("我的世界");
        
    f.setSize(400,300);
        
    f.setLocation(300,200);
        
    f.setVisible(true);
        
    Buttonbtn=newButton("Exit");
        
    f.add(btn);
    
    btn.addMouseListener(newMouseAdapter(){
    
    @Override
    publicvoidmouseClicked(MouseEvente){
        
    System.exit(0);
    
    }
    
    }
        );
    
    }
    
    }
        

    首先调用了btn的addMouseListner()方法,在这个方法中以匿名内部类的方法给按钮注册了一个鼠标事件监听器,因为只需要监听按钮的点击事件,使用了MouseAdapter适配器类,重写了mouseClicked()方法,当按钮被点击时,会把单击事件作为对象传递给事件监听器,做出退出程序的处理。

    到此,相信大家对“Java AWT实现事件处理的方法是什么”有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

    声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

    javaawt

    若转载请注明出处: Java AWT实现事件处理的方法是什么
    本文地址: https://pptw.com/jishu/292672.html
    Java中如何实现让线程按照自己指定的顺序执行 java怎么找数组中的最大元素

    游客 回复需填写必要信息