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 :
Le code ci-dessus ne produit aucun résultat.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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();
Quelqu'un saurait-il m'indiquer comment résoudre ce problème ?
Merci d'avance pour votre aide.
Partager