亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Maison Java Javacommencer que sont les événements Java

que sont les événements Java

Nov 13, 2019 am 09:38 AM
java événement

que sont les événements Java

Le mécanisme d'événements Java comprend trois parties?: les événements, les sources d'événements et les écouteurs d'événements.

1. événements

Les événements héritent généralement de la classe java.util.EventObject, encapsulant l'objet source de l'événement et les informations liées à l'événement.

import java.util.EventObject;  
  
/** 
 * 事件類,用于封裝事件源及一些與事件相關(guān)的參數(shù). 
 */  
public class CusEvent extends EventObject {  
    private static final long serialVersionUID = 1L;  
    private Object source;//事件源  
      
    public CusEvent(Object source){  
        super(source);  
        this.source = source;  
    }  
  
    public Object getSource() {  
        return source;  
    }  
  
    public void setSource(Object source) {  
        this.source = source;  
    }  
}

2. Source de l'événement

La source de l'événement est l'endroit où l'événement se produit, en raison d'un changement dans un attribut ou un état de la source de l'événement (comme BOUTON cliqué, la valeur de TEXTBOX change, etc.) provoquant la survenue d'un événement. En d'autres termes, l'objet événement correspondant est généré. étant donné que l'écouteur d'événement doit être enregistré sur la source d'événement, la classe de source d'événement doit avoir un conteneur (Liste, Ensemble, etc.) pour contenir l'écouteur.

/** 
 * 事件源.  
 */  
public class EventSourceObject {  
    private String name;  
    //監(jiān)聽器容器  
    private Set<CusEventListener> listener;  
    public EventSourceObject(){  
        this.listener = new HashSet<CusEventListener>();  
        this.name = "defaultname";  
    }  
    //給事件源注冊監(jiān)聽器  
    public void addCusListener(CusEventListener cel){  
        this.listener.add(cel);  
    }  
    //當事件發(fā)生時,通知注冊在該事件源上的所有監(jiān)聽器做出相應(yīng)的反應(yīng)(調(diào)用回調(diào)方法)  
    protected void notifies(){  
        CusEventListener cel = null;  
        Iterator<CusEventListener> iterator = this.listener.iterator();  
        while(iterator.hasNext()){  
            cel = iterator.next();  
            cel.fireCusEvent(new CusEvent(this));  
        }  
    }  
    public String getName() {  
        return name;  
    }  
    //模擬事件觸發(fā)器,當成員變量name的值發(fā)生變化時,觸發(fā)事件。  
    public void setName(String name) {  
        if(!this.name.equals(name)){  
            this.name = name;  
            notifies();  
        }        
    }  
}

3. écouteur d'événement

L'écouteur d'événement implémente l'interface java.util.EventListener et est enregistré sur la source de l'événement lorsque les propriétés ou l'état de l'événement. changement de source, demandez à l'écouteur correspondant d'appeler sa méthode de rappel interne.

import java.util.EventListener;  
  
/** 
 * 事件監(jiān)聽器,實現(xiàn)java.util.EventListener接口。定義回調(diào)方法,將你想要做的事 
 * 放到這個方法下,因為事件源發(fā)生相應(yīng)的事件時會調(diào)用這個方法。 
 */  
public class CusEventListener implements EventListener {  
      
    //事件發(fā)生后的回調(diào)方法  
    public void fireCusEvent(CusEvent e){  
        EventSourceObjecteObject = (EventSourceObject)e.getSource();  
        System.out.println("My name has been changed!");  
        System.out.println("I got a new name,named \""+eObject.getName()+"\"");
    }  
}

Classe de test

public class MainTest {  
   
    public static void main(String[] args) {  
        EventSourceObject object = new EventSourceObject();  
        //注冊監(jiān)聽器  
        object.addCusListener(new CusEventListener(){  
            @Override  
            public void fireCusEvent(CusEvent e) {  
                super.fireCusEvent(e);  
            }  
        });  
        //觸發(fā)事件  
        object.setName("AiLu");  
    }  
}

4. La connexion entre les événements, les sources d'événements et les auditeurs

Source d'événement ----- Générer --- -->événement------>Découvert par l'écouteur d'événement------>Entrez le code de traitement d'événement

import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class DemoAction extends Frame {//窗口就是事件源
    public DemoAction() {
        this.setTitle("窗口關(guān)閉");
        this.setLocation(400, 200);
        this.setSize(360, 280);   
        //給窗口綁定一個事件監(jiān)聽器
        this.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {//事件WindowEvent
                System.exit(0);//關(guān)閉窗口事件, 那么退出jvm
            }
        });
        this.setVisible(true);
    }
 
    public static void main(String[] args) {
        new DemoAction();
    }
}

5.

(1) Générer un auditeur?;

(2) Enregistrez l'auditeur sur le composant correspondant où l'événement se produit

(3) Enregistrez l'auditeur lorsque?; un événement se produit sur le composant, l'objet événement est renvoyé à l'écouteur

(4) L'écouteur appelle la méthode correspondante pour gérer l'événement.

Exemples de code?:

public class LoginListener implements ActionListener{
String text;
public void actionPerformed(ActionEvent e){
if("willow".equals(text)){
system.out.println("登錄成功!\n");
}
}
}
public class Login(){
public void showFrame(){
//創(chuàng)建窗體
JFrame LFrame = new JFrame();
LFrame.setSize(1000,800);
LFrame.setLocationRelativeTo(null);
LFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
LFrame.setLayout(new FlowLayout());
//創(chuàng)建監(jiān)聽器對象
LoginListener lg = new LoginListener();
//給窗體添加按鈕組件
JTextField tf = new JTextField();
LFrame.add(tf);
//給輸入框添加監(jiān)聽器
tf.addActionLisener(lg);
tf.text=tf.getText();
}
};

De nombreuses vidéos de formation Java, toutes sur le site Web PHP chinois, bienvenue pour apprendre en ligne?!

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefa?on, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel PHP
1500
276
Comment gérer les transactions en Java avec JDBC? Comment gérer les transactions en Java avec JDBC? Aug 02, 2025 pm 12:29 PM

Pour gérer correctement les transactions JDBC, vous devez d'abord désactiver le mode de validation automatique, puis effectuer plusieurs opérations, et enfin vous engager ou randonner en fonction des résultats; 1. Appelez Conn.SetAutoCommit (false) pour démarrer la transaction; 2. Exécuter plusieurs opérations SQL, telles que l'insertion et la mise à jour; 3. Appelez Conn.Commit () Si toutes les opérations sont réussies, et appelez Conn.Rollback () Si une exception se produit pour garantir la cohérence des données; Dans le même temps, les ressources TRY-With doivent être utilisées pour gérer les ressources, gérer correctement les exceptions et cl?turer les connexions pour éviter la fuite de connexion; De plus, il est recommandé d'utiliser des pools de connexion et de définir des points de sauvegarde pour réaliser un retour en arrière partiel, et de maintenir les transactions aussi courtes que possible pour améliorer les performances.

Comprendre les internes de la machine virtuelle Java (JVM) Comprendre les internes de la machine virtuelle Java (JVM) Aug 01, 2025 am 06:31 AM

Les capacités de ?écriture, runany?

Comment travailler avec le calendrier à Java? Comment travailler avec le calendrier à Java? Aug 02, 2025 am 02:38 AM

Utilisez des classes dans le package Java.Time pour remplacer les anciennes classes de date et de calendrier; 2. Obtenez la date et l'heure actuelles via LocalDate, LocalDateTime et Localtime; 3. Créez une date et une heure spécifiques en utilisant la méthode OF (); 4. Utilisez la méthode plus / moins pour augmenter et diminuer le temps; 5. Utilisez ZonedDateTime et ZoneID pour traiter le fuseau horaire; 6. Format et cha?nes de date d'analyse via DateTimeFormatter; 7. Utilisez instantanément pour être compatible avec les anciens types de dates si nécessaire; Le traitement des dattes dans le Java moderne devrait donner la priorité à l'utilisation de Java.timeapi, qui fournit clairement, immuable et linéaire

Comparaison des frameworks Java: Spring Boot vs Quarkus vs MicronAut Comparaison des frameworks Java: Spring Boot vs Quarkus vs MicronAut Aug 04, 2025 pm 12:48 PM

Pré-formancetartuptimemoryusage, quarkusandmicronautleadduetocompile-timeprocessingandgraalvsupport, withquarkusofperforming lightbetterine scénarios.

Comment fonctionne la collection Garbage en Java? Comment fonctionne la collection Garbage en Java? Aug 02, 2025 pm 01:55 PM

La collecte des ordures de Java (GC) est un mécanisme qui gère automatiquement la mémoire, ce qui réduit le risque de fuite de mémoire en récupérant des objets inaccessibles. 1. GC juge l'accessibilité de l'objet de l'objet racine (tel que les variables de pile, les threads actifs, les champs statiques, etc.), et les objets inaccessibles sont marqués comme des ordures. 2. Sur la base de l'algorithme de compensation de marque, marquez tous les objets accessibles et effacez des objets non marqués. 3. Adopter une stratégie de collecte générationnelle: la nouvelle génération (Eden, S0, S1) exécute fréquemment MinorGC; Les personnes agées fonctionnent moins, mais prend plus de temps pour effectuer MajorGC; Metaspace Stores Metadata de classe. 4. JVM fournit une variété de périphériques GC: SerialGC convient aux petites applications; Le parallelGC améliore le débit; CMS réduit

Comprendre les ports du réseau et les pare-feu Comprendre les ports du réseau et les pare-feu Aug 01, 2025 am 06:40 AM

NetworkportsandfirewallsworkTogeTherToenable Communication whileSenSurringSecurity.1.networkportsAreVirtualEndpointsNumberred0–65535, Withwell-connuportslike80 (HTTP), 443 (HTTPS), 22 (SSH), et 25 (SMTP)

Comparaison des outils de construction Java: Maven vs Gradle Comparaison des outils de construction Java: Maven vs Gradle Aug 03, 2025 pm 01:36 PM

GradleisthebetterChoiceFormostNewProjectsDuetOtsSuperiorflexibility, Performance et ModerNtoolingSupport.1.gradle’sgroovy / kotlindslismoreConcis

passer par l'exemple de déclaration de différence expliquée passer par l'exemple de déclaration de différence expliquée Aug 02, 2025 am 06:26 AM

Le report est utilisé pour effectuer des opérations spécifiées avant le retour de la fonction, telles que les ressources de nettoyage; Les paramètres sont évalués immédiatement lorsqu'ils sont reportés et les fonctions sont exécutées dans l'ordre de la dernière entrée (LIFO); 1. Plusieurs éleveurs sont exécutés dans l'ordre inverse des déclarations; 2. Communément utilisé pour le nettoyage sécurisé tel que la fermeture des fichiers; 3. La valeur de retour nommée peut être modifiée; 4. Il sera exécuté même si la panique se produit, adaptée à la récupération; 5. éviter l'abus de report dans les boucles pour éviter la fuite des ressources; Une utilisation correcte peut améliorer la sécurité et la lisibilité du code.

See all articles