Aucun soucis ou incompatibilité, SceneBuilder est un outils qui permet de monter une UI sans devoir taper le FXML
a mano. C'est l'action qui sera lancée en clic du bouton qui permettra de démarrer le
Service/l'
Executor. Donc, a priori, du code Java dans une méthode marquée
@FXML qui sera placé dans la classe contrôleur ; sauf si on met du code en script directement dans le FXML, ce qui est possible mais que j'ai guère trop pratiqué au fil des ans (car peu utile au final). Et même dans ce cas exotique, rien empeche d'utiliser l'API pour les taches de fond.
EDIT - pour élaborer plus en avant :
- 1er clic sur le bouton (ou sur le bouton dédié au lancement) ->
- Création du Service et de la Task associée
- Ajout des 3 callback pour savoir quoi faire en fin de Service
- Service::setOnSucceeded -> la Task finit normalement.
- Service::setOnCancelled -> la Task a été annulée.
- Service::setOnFailed -> la Task a échoué avec une exception.
- Lancement de Service::start.
- 2nd clic sur le bouton (ou sur le bouton dédié a l’arrêt) -> on invoque Service::cancel
Ce qui implique que dans le code de la
Task, il faut régulièrement vérifier la valeur de
Task::isCancelled (paske sinon ta
Task continue son calcul jusqu’à la fin).
Partager