ben tu peux factoriser ton code pour éviter de mettre la meme logique à 50.000 endroits, mais il n'y a pas plus générique pour les traitements longs que swingworker :)
Type: Messages; Utilisateur: tchize_
ben tu peux factoriser ton code pour éviter de mettre la meme logique à 50.000 endroits, mais il n'y a pas plus générique pour les traitements longs que swingworker :)
l'EDT est un système évenementiel qui pompe des instructions 'dessine ceci, fenetre bougée, curseur bougé, bouton cliqué etc', il ne peux donc pas être bloqué, donc on met tout le code "lourd"...
un swingworker n'est qu'un classe et le code que tu utilise là, ca crée une sous classe anonyme, l'instancie et appel exécute dessus ;)
Tout dépend bien sur de l'architecture que vous visez, mais vous pouvez par exemple
-> passer un runnable() à votre swing worker, que vous exécuteriez une fois le travail principal fini
->...
soit:
tu envoie des informations via la méthode publish depuis "doInBackground'. SwingWorker va alors lancer dans l'EDT la méthode process() avec ces données, tu pourra y faire le nécessaire pour...
pour faire simple, tant que votre boucle squatte l'edt, celui-ci ne va plus lire les évènements de sa pile d'évènements. ceci aura les conséquence suivantes:
1) plus aucun bouton votre...
après avoir lancé votre SwingWorker ou votre invokeLater, vous devez sortir de votre action pour que l'update se fasse.
Non seulement update(getGraphics()) est sale mais il est surtout garanti de...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.