Minuteries et javafx
Je suis en train d'écrire un code qui permettra de rendre les choses apparaissent sur l'écran à prédéterminés mais à intervalles irréguliers à l'aide de javafx. J'ai essayé d'utiliser un timer (java.util, pas javax.swing), mais il s'avère que vous ne pouvez pas changer quoi que ce soit dans l'application si vous travaillez à partir d'un thread séparé.(Comme une Minuterie) quelqu'un Peut me dire comment je pourrais obtenir une Minuterie pour interagir avec l'application, s'ils sont à la fois des threads séparés?
- Voir Comment mettre à jour une étiquette toutes les 2 secondes en JavaFX; je.e à utiliser Plate-forme.runLater la mise à jour de l'INTERFACE utilisateur à partir d'un sujet séparé, ou utiliser le JavaFX cadre de l'animation pour tout garder sur le thread d'INTERFACE utilisateur.
Vous devez vous connecter pour publier un commentaire.
Si vous touchez à aucun JavaFX composant, vous devez le faire à partir de la Plate-forme de thread (ce qui est essentiellement le event dispatch thread pour JavaFX.) Le faire facilement en appelant
Platform.runLater()
. Ainsi, par exemple, il est parfaitement sûr pour ce faire:Vous n'avez pas besoin
java.util.Timer
oujava.util.concurrent.ScheduledExecutorService
de planifier les actions futures sur le JavaFX application thread. Vous pouvez utiliser JavaFX Scénario en tant que minuteur:Alternativement, vous pouvez utiliser une méthode de convenance à partir de ReactFX:
Notez que vous n'avez pas besoin de mettre de l'action dans
Platform.runLater
, car il est déjà exécutée sur le JavaFX application thread.berry120 réponse fonctionne avec java.util.Minuterie trop de sorte que vous pouvez faire
Je l'utilise et il fonctionne parfaitement