Comment JavaFX application thread fonctionne?
J'ai un problème avec Java FX thread d'application. Voici un pseudo-code:
showMenu();
//Contoller which waits for action(pressing button)...
showLoadingPic();
Thread.sleep(2000);
showMap();
Le problème est que le sommeil se produit dans la fenêtre qui s'affiche dans showMenu(), showLoadingPic() n'est pas montrée à tous, et à la fin de la fenêtre dans showMap() est affichée.
La scène dans showLoadingPic a une barre de progression qui s'exécute en 2 secondes qui est en même temps que le Fil de discussion.sleep(2000).
Donc il semble que javafx application thread se bloque showLoadingPic() et showLoadingPic() s'exécute en arrière-plan.
Quelqu'un peut-il m'aider à résoudre ce problème??
Vous en remercie d'avance!
OriginalL'auteur ulzhan | 2013-11-03
Vous devez vous connecter pour publier un commentaire.
Il y a un Java FX event dispatch thread, qui traitent tous les GUI-tâches connexes. Vous devez mettre à jour tous les composants de l'INTERFACE utilisateur dans ce fil.
Long-tâches en cours d'exécution, comme
Thread.sleep
doit jamais être exécutée dans ce fil, depuis windows se bloque, et le GUI sera congelés.Exécuter tout votre code dans le thread principal de l'application, et de n'effectuer que GUI tâches en JavaFX fil, en appelant
Plate-forme.runLater
.Références sur ce sujet:
OriginalL'auteur Guillaume Poussel