Thread.sleep() ne fonctionne qu'une fois.
Bonjour à tous,
je rencontre un petit problème.
Je souhaite afficher une scene (avec aucune interaction avec l'utilisateur) puis au bout de 3 secondes, afficher une autre scene (toujours sans interaction) puis enfin au bout de 3 secondes afficher une ultime scene.
J'ai fait ça :
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
| public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("/ressources/fxml/Intro1.fxml"));
primaryStage.setTitle("Nouveau Jeu");
Scene scene = new Scene(root);
primaryStage.setScene(scene);
primaryStage.setResizable(false);
primaryStage.setFullScreen(true);
primaryStage.show();
Thread.sleep(3000);
Parent root2 = FXMLLoader.load(getClass().getResource("/ressources/fxml/Intro2.fxml"));
primaryStage.getScene().setRoot(root2);
System.out.println("2");
Thread.sleep(3000);
Parent root3 = FXMLLoader.load(getClass().getResource("/ressources/fxml/Main.fxml"));
primaryStage.getScene().setRoot(root3);
System.out.println("3");
} |
Le souci c'est que j'ai bien la première scene puis au bout de 6 secondes j'ai la dernière scene. La deuxième scene passe à la trappe. Mais pourtant le texte demandé ("2") s'affiche bien dans la console...
Pour être sûr que ce n'est pas ma deuxième scene qui déconne, j'ai supprimé le code juste après "System.out.println("2");" et là ma deuxième scene s'affiche correctement.
Que dois-je faire pour que cela fonctionne ?
Je vous remercie d'avance !