Vidéo: [FR][Partie 1] Tutoriel Java Swing GUI : Créer sa première fenêtre 2024
Pour les threads qui déclenchent des événements de compte à rebours spécifiques, tels que l'inondation de la rampe de lancement, le démarrage des événements et la levée, vous pouvez créer une autre classe Java appelée LaunchEvent. Cette classe utilise une autre technique pour créer et démarrer des threads - une qui nécessite un peu plus de lignes de code mais qui est plus flexible.
Le problème avec la création d'une classe qui étend la classe Thread est qu'une classe peut avoir une superclasse. Que faire si vous préférez que votre objet thread étende une autre classe? Dans ce cas, vous pouvez créer une classe qui implémente l'interface Runnable plutôt que d'étendre la classe Thread.
L'interface Runnable marque un objet pouvant être exécuté en tant que thread. Il a une seule méthode, run, qui contient le code qui est exécuté dans le thread. (La classe Thread implémente Runnable, ce qui explique pourquoi la classe Thread a une méthode run.)
Pour utiliser l'interface Runnable pour créer et démarrer un thread, vous devez effectuer les opérations suivantes:
-
Créer une classe qui implémente Runnable.
-
Fournissez une méthode d'exécution dans la classe Runnable.
-
Crée une instance de la classe Thread et passe ton objet Runnable à son constructeur en tant que paramètre.
Un objet Thread est créé pour exécuter votre classe Runnable.
-
Appelez la méthode de démarrage de l'objet Thread.
La méthode run de votre objet Runnable est appelée et s'exécute dans un thread séparé.
Les deux premières étapes sont faciles. L'astuce est dans les troisième et quatrième étapes, parce que vous pouvez les compléter de plusieurs façons. Voici une façon, en supposant que votre classe Runnable est nommée RunnableClass:
RunnableClass rc = new RunnableClass (); Thread t = nouveau Thread (rc); t. début();
Les programmeurs Java aiment être aussi concis que possible, donc vous voyez souvent ce code compressé à quelque chose de plus comme
Thread t = new Thread (new RunnableClass ()); t. début();
ou même simplement:
new Thread (new RunnableClass ()). début();
Cette version mono-ligne fonctionne - à condition que vous n'ayez pas besoin d'accéder à l'objet thread plus tard dans le programme.