ホームページ >Java >&#&チュートリアル >Java AWTで実装されるイベント処理プロセスとは何ですか?
イベント処理は主にユーザー操作に応答するための処理です
イベント オブジェクト ( Event ) : GUI コンポーネントで発生する特定のイベント (通常はユーザーによる操作) をカプセル化します。
イベント ソース (コンポーネント): イベントが発生する場所、通常はイベントを生成するコンポーネント
Listener (リスナー): 責任者イベントをリッスンするためのソース上で発生するイベント、およびそれに応じてさまざまなイベントを処理するオブジェクト (オブジェクトにはイベント ハンドラーが含まれます)。
イベント ハンドラー: リスナー オブジェクトは、受信したイベント オブジェクトを適切に処理します。
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
空の問題を解決するには生成されたメソッド 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 サイトの他の関連記事を参照してください。