Exécution de la tâche en arrière-plan en JavaFX
Je veux charger jusqu'à neuf panneaux dans un TilePane. Pour chaque volet, je dois courir frist un calcul du contenu (environ 300ms) et la deuxième ont à construire le Panneau (environ 500ms). Ce que je veux dire, c'est qu'il y a de neuf ProgressIndicators des échanges avec chaque groupe après son calcul.
Je l'ai essayé avec la Plate-forme.runlater de commande ainsi qu'avec une classe de service. Le résultat était toujours le même. Le ProgressIndicator sont affichés, mais pas d'animation. Après quelques secondes il tous les tous les panneaux à la fois.
Est-il possible, que les Indicateurs sont animés le trou de temps et que je peux les échanger l'un après l'autre?
OriginalL'auteur Yggdrasil | 2012-02-06
Vous devez vous connecter pour publier un commentaire.
JavaFX a Event Dispatch Thread qu'il utilise pour les événements de l'UI. Tous les travaux avec l'INTERFACE utilisateur devrait arriver sur ce fil. Et non de l'INTERFACE utilisateur calculs ne devrait pas arriver là pour éviter les lags dans l'INTERFACE utilisateur.
Voir code suivant:
bien sûr, vous pouvez exécuter
new Thread()
plusieurs fois.Grâce Sergey, Il est conseillé d'avoir plusieurs Plate-forme.runLater dans l'application??. Depuis ces discussions ont pour changer de vue, pour exampe si pour afficher une boîte de dialogue.
bien sûr, il suffit de ne pas faire n'importe quoi sauf la mise à jour de l'INTERFACE utilisateur dans ces runLater appels, car il y a un seul thread d'INTERFACE utilisateur et rien de ce qui s'y passera jusqu'à ce que votre runLater est fait.
OriginalL'auteur Sergey Grinev
C'est comment j'ai résolu le problème:
OriginalL'auteur Yggdrasil
La façon la plus simple est d'utiliser des lambdas et du fil.
OriginalL'auteur Paweł