Je fais une routine dans Java (1.5) + balançoire, ce damandne un peu de temps. Comment la meilleure façon de mettre en œuvre cet acheminement en dehors du fil de swing, pour éviter la congélation de l'interface utilisateur? P>
Merci d'avance p>
3 Réponses :
Au début rougeur, regardez la classe SwingWorker. Lorsque vous voulez rendre le code plus robuste et testable, vous voulez probablement vous éloigner de cela, mais c'est un bon départ assez bon. P>
Vous pouvez obtenir une version pour Java 1.5 ici . Avec 1.6, il fait partie de l'API standard. P>
Je n'ai jamais utilisé la mise en œuvre JDK, mais cela semble être buggé, voir Bugs. Sun.com/bugdatabase/view_bug.do?bug_id=6880336
@Ash, cela s'applique de 1.6U18, pas seulement 1,7
Utiliser Mais n'oubliez pas d'utiliser Profiler Strong> - Cela peut vous aider à trouver de nombreux problèmes. Comme Swing a souvent des problèmes avec "morts" auditeurs em> détenant des références qui ne peuvent pas être recueillies (résultant de réponses très lentes ou de congélation de l'interface utilisateur ou même des fuites de mémoire). Profiler vous aidera à enquêter sur les besoins en mémoire de situations spécifiques lors de l'utilisation de votre application et vous pourrez donc être adapté à votre application. P> swingworker code> est bien sûr une bonne idée et je recommande que. Écrire également Custom
javax.swing.Timer code> s et
java.lang.thread code> s. P>
Résolu comme commentaire: P>
"Cela pourrait aider: Stackoverflow.com/Questtions/2564388/javas-swing-Trireading - Andreas_d 5 juil 5 à 22:01 " P>
Cela pourrait aider: Stackoverflow.com/Questtions/2564388/javas-swing-Trireading
En fait, ce lien est bien meilleur que ma réponse aussi ...
Oui, j'ai posté une réponse avec ce lien, mais c'est juste inutile maintenant :)
Merci. J'ai fait ma propre implémentation selon cette réponse et ajouter une barre de progression pour signaler le statut. :)