Le traitement des événements consiste principalement à répondre aux opérations de l'utilisateur
Objet Event (Event) : encapsule un événement spécifique qui se produit sur le composant GUI (généralement une opération de l'utilisateur).
Source d'événement (composant) : L'endroit où l'événement se produit, généralement le composant qui génère l'événement
Listener (Listener) : Responsable de la surveillance des événements qui se produisent sur la source d'événement et du traitement de divers événements en conséquence Objet ( l'objet contient des gestionnaires d'événements).
Gestionnaire d'événement : l'objet écouteur gère l'objet événement reçu en conséquence.
Créez une classe d'écoute d'événements MyWindowListener qui implémente l'interface WindowListener dans le programme. Après avoir lié la fenêtre à l'objet écouteur via la méthode addWindowListener(), cliquez sur le bouton Fermer pour déclencher le. Méthode windowClosing() de l'objet écouteur, masquant et libérant la fenêtre actuelle, fermant ainsi la fenêtre.
Le code est le suivant
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
Afin de résoudre le problème de l'implémentation vide des méthodes générées, jdk fournit des classes d'adaptateur, qui sont les classes d'implémentation par défaut de l'interface d'écoute, et sont implémentées dans ces classes d'implémentation. Toutes les méthodes dans l'interface, mais il n'y a pas de code dans la méthode, le programme peut atteindre l'objectif d'implémenter l'interface d'écoute en héritant de la classe adaptateur.
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(); } }
Puisque la classe MyWindowListener hérite de la classe d'adaptateur WindowAdapter et que la fonction consiste à fermer la fenêtre, il vous suffit de réécrire la méthode windowClosing(). Presque toutes les interfaces d'écoute ont des classes d'adaptateur correspondantes, et la surveillance est implémentée en héritant de la méthode windowClosing(). classe d'adaptateur. Lorsque vous utilisez l'interface du contrôleur, si vous devez gérer ces événements, vous pouvez directement remplacer la méthode correspondant à l'événement.
Utilisez des classes internes anonymes pour implémenter le traitement des événements
Dans l'adaptateur d'événements ci-dessus, l'objet source d'événement est surveillé en héritant de la classe de l'adaptateur. Cependant, pour la simplicité du code, des classes internes anonymes peuvent être utilisées pour créer des objets d'écoute d'événements. et surveiller les événements qui se produisent.
Ajoutez un bouton avec un événement de clic à la fenêtre
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); } }); } }
Tout d'abord, la méthode addMouseListner() de btn est appelée Dans cette méthode, un écouteur d'événement de souris est enregistré pour le bouton en utilisant la méthode de classe interne anonyme, car seul le bouton est enregistré. Le bouton doit être surveillé. Pour les événements de clic, la classe d'adaptateur MouseAdapter est utilisée et la méthode mouseClicked() est remplacée. Lorsque vous cliquez sur le bouton, l'événement de clic est transmis à l'écouteur d'événement en tant qu'objet et le programme est quitté.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!