JavaAWT實現事件處理的方法是什么

本篇內容主要講解“Java AWT實現事件處理的方法是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Java AWT實現事件處理的方法是什么”吧!

成都創新互聯專注于安義企業網站建設,成都響應式網站建設,購物商城網站建設。安義網站建設公司,為安義等地區提供建站服務。全流程按需定制設計,專業設計,全程項目跟蹤,成都創新互聯專業和態度為您提供的服務

    AWT的事件處理

    事件處理主要是為了響應用戶的操作

    • 事件對象(Event):封裝了GUI組件上發生的特定事件(通常就是用戶的一次操作)。

    • 事件源(組件):事件發生的場所,通常就是產生事件的組件

    • 監聽器(Listener):負責監聽事件源上發生的事件,并對各種事件做出相應處理的對象(對象中包含事件處理器)。

    • 事件處理器:監聽器對象對接收的事件對象進行相應處理的辦法。

    AWT中的事件繼承圖

    Java AWT實現事件處理的方法是什么

    在程序中創建了一個實現WindowListener接口的事件監聽器類MyWindowListener,當通過addWindowListener()方法將窗口與監聽器對象綁定后,單擊關閉按鈕,會觸發監聽器對象的windowClosing()方法,將當前窗口隱藏并釋放,從而關閉了窗口。

    代碼如下

     package AWT;
     import java.awt.*;
     import java.awt.event.WindowEvent;
     import java.awt.event.WindowListener;
     public class Example08 {
         public static void main(String[] args) {
             Frame f=new Frame("我的世界");
             f.setSize(400,300);
             f.setLocation(300,200);
             f.setVisible(true);
             //給窗口注冊一個監聽器
             MyWindowListener mw=new MyWindowListener();
             f.addWindowListener(mw);
         }
     }
     class MyWindowListener implements WindowListener{
         @Override
         public void windowOpened(WindowEvent e) {
         }
         @Override
         public void windowClosing(WindowEvent e) {
             Window window= e.getWindow();
             window.setVisible(false);
             window.dispose();
         }
         @Override
         public void windowClosed(WindowEvent e) {
         }
         @Override
         public void windowIconified(WindowEvent e) {
         }
         @Override
         public void windowDeiconified(WindowEvent e) {
     
         }
         @Override
         public void windowActivated(WindowEvent e) {
         }
         @Override
         public void windowDeactivated(WindowEvent e) {
         }
     }

    結果

    Java AWT實現事件處理的方法是什么

    事件適配器

    為了解決生成的方法空實現的問題,jdk提供了一些適配器類,它們是監聽器接口的默認實現類,這些實現類中實現了接口中所有的方法,但是方法中沒有代碼,程序可以通過繼承適配器類來達到實現監聽器接口的目的。

     package AWT;
     import java.awt.*;
     import java.awt.Frame;
     import java.awt.event.WindowAdapter;
     import java.awt.event.WindowEvent;
     import java.awt.event.WindowListener;
     public class Example08 {
         public static void main(String[] args) {
             Frame f=new Frame("我的世界");
             f.setSize(400,300);
             f.setLocation(300,200);
             f.setVisible(true);
            //給窗口注冊一個監聽器
             MyWindowListener mw=new MyWindowListener();
             f.addWindowListener(mw);
         }
     }
              //繼承WindowAdapter類,重寫windowClosing()方法
     class MyWindowListener1 extends WindowAdapter {
     
         @Override
         public void windowClosing(WindowEvent e) {
             Window window=(Window) e.getComponent();
             window.dispose();
         }
     }

    由于MyWindowListener類繼承了適配器類WindowAdapter,由于實現的功能是關閉窗口,所以只需要重寫windowClosing()方法,幾乎所有的監聽器接口都有對應的適配器類,通過繼承適配器類來實現監聽器接口時,需要處理那些事件,就直接重寫該事件對應的方法。

    用匿名內部類實現事件處理

    上面的事件適配器中通過繼承適配器類對事件源對象實現了監聽,但是為了代碼的簡潔,可以使用匿名內部類來創建事件的監聽器對象,對所發生的事件進行處理。

    為窗口添加一個具有點擊事件的按鈕

     package AWT;
     import java.awt.*;
     import java.awt.event.MouseAdapter;
     import java.awt.event.MouseEvent;
     public class NiMing {
         public static void main(String[] args) {
             Frame f=new Frame("我的世界");
             f.setSize(400,300);
             f.setLocation(300,200);
             f.setVisible(true);
             Button btn=new Button("Exit");
             f.add(btn);
             btn.addMouseListener(new MouseAdapter() {
                 @Override
                 public void mouseClicked(MouseEvent e) {
                     System.exit(0);
                 }
             });
         }
     }

    首先調用了btn的addMouseListner()方法,在這個方法中以匿名內部類的方法給按鈕注冊了一個鼠標事件監聽器,因為只需要監聽按鈕的點擊事件,使用了MouseAdapter適配器類,重寫了mouseClicked()方法,當按鈕被點擊時,會把單擊事件作為對象傳遞給事件監聽器,做出退出程序的處理。

    到此,相信大家對“Java AWT實現事件處理的方法是什么”有了更深的了解,不妨來實際操作一番吧!這里是創新互聯網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

    當前文章:JavaAWT實現事件處理的方法是什么
    本文路徑:http://m.kartarina.com/article12/jedsdc.html

    成都網站建設公司_創新互聯,為您提供定制開發網站維護小程序開發自適應網站App開發建站公司

    廣告

    聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

    h5響應式網站建設
    主站蜘蛛池模板: 少妇人妻无码精品视频| 久久精品无码专区免费| 亚洲人成无码久久电影网站| 无码色AV一二区在线播放| 惠民福利中文字幕人妻无码乱精品| 性虎精品无码AV导航| 精品久久亚洲中文无码| 亚洲成A人片在线观看无码不卡| 亚洲无码精品浪潮| 无码成人一区二区| 日韩无码系列综合区| 精品无码久久久久国产| 亚洲AV无码国产精品麻豆天美| 中文字幕丰满伦子无码 | 国产亚洲情侣一区二区无码AV| 日日摸夜夜添无码AVA片| 亚洲AV无码一区二区乱子伦| 亚洲av无码专区在线电影天堂| 在线a亚洲v天堂网2019无码| 日本精品无码一区二区三区久久久| 亚洲精品GV天堂无码男同| 亚洲youwu永久无码精品| 亚洲色无码专区在线观看| 国产成人无码精品一区二区三区| 日韩毛片免费无码无毒视频观看| 亚洲色偷拍另类无码专区| 久久国产三级无码一区二区| 最新亚洲人成无码网www电影| 午夜寂寞视频无码专区| 一本大道无码日韩精品影视_| 无码八A片人妻少妇久久| 日韩乱码人妻无码中文字幕 | 亚洲日韩欧洲无码av夜夜摸| 国产av无码久久精品| 国产午夜无码片在线观看影院| 久久久久久久久免费看无码| 亚洲私人无码综合久久网| 亚洲中文字幕无码av永久| 亚洲精品自偷自拍无码| 亚洲Av无码国产一区二区| 无码高潮少妇毛多水多水免费|