Vidéo: Java Threads Tutorial 2 - How to Create Threads in Java by Extending Thread Class 2024
Voici un secret bien gardé: les programmes Java sont multithread, ce qui signifie que plusieurs choses se passent à la fois quand vous exécutez un programme Java. Bien sûr, l'ordinateur exécute le code que vous avez écrit, mais il exécute également d'autres codes (code que vous n'avez pas écrit et que vous ne voyez pas).
Tout ce code est en cours d'exécution en même temps. Alors que l'ordinateur exécute les instructions de votre méthode principale, l'une après l'autre, l'ordinateur prend un certain temps, se faufile brièvement et exécute des instructions à partir d'autres méthodes invisibles. Pour la plupart des programmes Java simples, ces autres méthodes sont celles définies dans le cadre de la machine virtuelle Java (JVM).
Par exemple, Java a un thread de gestion d'événements. Pendant l'exécution de votre code, le code du thread de gestion des événements s'exécute en arrière-plan. Le code du thread de gestion d'événements est à l'écoute des clics de souris et prend les mesures appropriées chaque fois qu'un utilisateur clique sur la souris. La figure illustre comment cela fonctionne.
Lorsque l'utilisateur clique sur le bouton, le thread de gestion des événements dit: «OK, le bouton a été cliqué. Alors, que dois-je faire à ce sujet? "Et la réponse est," Appelez des méthodes d'actionPerformed. "C'est comme si le thread de gestion des événements avait un code qui ressemble à ceci:
if (buttonJustGotClicked ()) {objet1. actionPerformed (infoAboutTheClick); object2. actionPerformed (infoAboutTheClick); object3. actionPerformed (infoAboutTheClick);}
Bien sûr, derrière chaque réponse est une autre question. Dans cette situation, la question de suivi est: «Où le thread de gestion des événements trouve-t-il les méthodes actionPerformed à appeler? "Et il y a une autre question:" Que faire si vous ne voulez pas que le thread de gestion des événements appelle certaines méthodes actionPerformed qui se cachent dans votre code? "
Eh bien, c'est pourquoi vous appelez la méthode addActionListener. Dans la liste, le bouton d'appel
. addActionListener (this);
indique au thread de gestion d'événements: "Mettez la méthode actionPerformed de ce code sur votre liste de méthodes à appeler. Appelez la méthode actionPerformed de ce code à chaque fois que vous cliquez sur le bouton. "
Donc, c'est comme ça que ça fonctionne. Pour que l'ordinateur appelle une méthode actionPerformed, vous enregistrez la méthode avec le thread de gestion des événements de Java. Vous effectuez cette inscription en appelant addActionListener. La méthode addActionListener appartient à l'objet dont vous attendez les clics (et autres événements).
Dans la liste, vous attendez que l'objet bouton soit cliqué et la méthode addActionListener appartient à cet objet bouton.