Task Multithread, modifier les enfants d'une HBox
Bonjour,
Je m’essaye à l'utilisation des classes Task et Service de JavaFX pour le multithread mais j'avoue que je suis un peu perdu.
Voici le scénario que je cherche à réaliser :
1) Je clique sur un bouton de mon IHM.
2) le click_handler lance un thread en parallèle (Task) qui réalise des calculs longs et complexes. Le thread JavaFX quant à lui se termine et me rend la main sur l'IHM.
3) une fois le thread en parallèle terminé, il modifie les enfants d'une Hbox de mon IHM.
Voici le code que j'ai mis en place.
click_handler :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| HBox hboxResultat = (HBox) vboxListInput .getChildren().get(indexHbox);
Task<HBox> taskProcessWord = new Task<HBox>() {
@Override
protected HBox call() throws Exception {
try {
//Calculs longs et complexe.
} catch (Exception e) {
log.error(e);
}
//reinit hbox
HBox myHbox = new HBox();
//ajout nodes à ma hbox
addInfosToHbox(myHbox);
return myHbox;
}
};
hboxResultat = taskProcessWord.valueProperty().get();
Thread th = new Thread(taskProcessWord);
th.setDaemon(true);
System.out.println("Starting background task...");
th.start(); |
Le code ci-dessus ne produit aucun résultat.
Quelqu'un saurait-il m'indiquer comment résoudre ce problème ?
Merci d'avance pour votre aide.