Im assez nouveau à la programmation .... donc je fais un lecteur de musique qui a besoin de certaines fonctionnalités Je dois traiter un événement en même temps en 2 classes. Par exemple ...Est-ce que les événements de Java sont traités dans un thread séparé ou que je dois le faire moi-même?
Le lecteur joue de la musique sur son propre thread, lorsque cette musique est terminée, il déclenche musicFinished (MusicEvent), passe à la classe Playlist et demande àForAnotherMusicToPlay(), puis recommence à jouer. Lorsque musicFinished déclenche tout cela se produit en même temps: -A Logger, qui écoute l'événement, l'écrit dans un fichier journal. (Ai-je besoin d'un autre fil ici ou l'événement est déjà traité dans un autre fil?) -L'UG affiche la musique terminée, met à jour une étiquette et met l'horloge à 0. (Pour cela, j'utiliserais SwingUtilities.invokeLater, non?
Alors quelle est la meilleure solution pour ce cas? Faire mon propre événement? Qu'en est-il des discussions? dois-je faire alors moi-même? J'ai déjà googlé pour cela et j'ai découvert que l'action Effectuée est exécutée dans l'EDT (Event Dispatching Thread) mais je ne sais pas pour d'autres événements. sont-ils tous ??? Merci
alors j'ai juste besoin de faire mon propre événement, en étendant java.util.EventObject ?? et quand il se déclenche il sera traité sur l'EDT? Donc, pour mettre à jour l'interface graphique, je peux simplement écrire du code graphique dans l'événement hanlder, et pour faire d'autres choses, je vais commencer un autre thread ?? Merci – fredcrs
J'ai fait quelques testes ici et j'ai réalisé que l'événement que j'ai créé en étendant java.util.EventObject quand il a été déclenché n'était PAS traité dans l'EDT. J'ai utilisé SwingUtilities.isEvenItDispatchingThread(), pour cela. Il a été manipulé sur mon fil principal – fredcrs