AWT イベント処理
イベント処理は主にユーザー操作に応答するための処理です
イベント オブジェクト ( Event ) : GUI コンポーネントで発生する特定のイベント (通常はユーザーによる操作) をカプセル化します。
イベント ソース (コンポーネント): イベントが発生する場所、通常はイベントを生成するコンポーネント
Listener (リスナー): 責任者イベントをリッスンするためのソース上で発生するイベント、およびそれに応じてさまざまなイベントを処理するオブジェクト (オブジェクトにはイベント ハンドラーが含まれます)。
イベント ハンドラー: リスナー オブジェクトは、受信したイベント オブジェクトを適切に処理します。
AWT のイベント継承図

WindowListener インターフェースを実装したイベント リスナー クラス MyWindowListener がプログラム内で作成されます。 addWindowListener() メソッドを通じてウィンドウをリスナー オブジェクトに追加し、閉じるボタンをクリックすると、リスナー オブジェクトの windowClosing() メソッドがトリガーされ、現在のウィンドウが非表示になったり解放されたりして、ウィンドウが閉じられます。
コードは次のとおりです
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | 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 の実装 リスナーインターフェースのデフォルト実装クラスであるいくつかのアダプタークラスが提供されています これらの実装クラスはインターフェース内のすべてのメソッドを実装しますが、メソッド内にコードはありません プログラムは目的を達成できますアダプタークラスを継承してリスナーインターフェースを実装する方法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | 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);
}
}
class MyWindowListener1 extends WindowAdapter {
@Override
public void windowClosing(WindowEvent e) {
Window window=(Window) e.getComponent();
window.dispose();
}
}
|
ログイン後にコピー
MyWindowListener クラスはアダプター クラス WindowAdapter を継承しており、ウィンドウを閉じるための関数であるため、windowClosing() メソッドを書き換えるだけで済みます。ほとんどすべてのリスナー インターフェイスには対応するアダプター クラスがあります。アダプタ クラスがリスナー インターフェイスを実装し、それらのイベントを処理する必要がある場合、イベントに対応するメソッドを直接オーバーライドします。
匿名内部クラスを使用してイベント処理を実装する
上記のイベント アダプターは、アダプター クラスを継承することによってイベント ソース オブジェクトの監視を実装しますが、コードを簡素化するために、匿名内部クラスを使用することもできます。イベントを作成するクラス リスナー オブジェクトは、発生するイベントを処理します。
クリック イベントを持つボタンをウィンドウに追加する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | 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 サイトの他の関連記事を参照してください。