ホームページ  >  記事  >  Java  >  Java AWTで実装されるイベント処理プロセスとは何ですか?

Java AWTで実装されるイベント処理プロセスとは何ですか?

王林
王林転載
2023-05-04 17:52:161417ブラウズ

    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) {
         }
     }

    Result

    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で実装されるイベント処理プロセスとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明:
    この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。