Attualmente sto lavorando con due classi di controller.Come chiudere una fase dopo un certo periodo di tempo JavaFX
In Controller1 crea una nuova fase che si apre in cima a quella principale.
Stage stage = new Stage();
Parent root = FXMLLoader.load(getClass().getResource("Controller2.fxml"));
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
Ora, una volta che la fase è aperta, voglio che rimanga aperto per circa 5 secondi prima della chiusura stessa.
All'interno controller2, Ho provato a implementare qualcosa di simile
long mTime = System.currentTimeMillis();
long end = mTime + 5000; // 5 seconds
while (System.currentTimeMillis() > end)
{
//close this stage
}
ma non ho idea di cosa mettere dentro il ciclo while per chiuderla. Ho provato tutti i tipi e niente funziona.
Se si utilizza questo tipo di tecniche, è necessario * avere * per eseguirlo in una discussione, altrimenti il contenuto dello stage non verrà visualizzato. Inoltre, dovresti racchiudere 'stage.close()' in un 'Platform.runLater (...)' dato che deve essere eseguito sul thread dell'applicazione FX. È più facile usare un 'PauseTransition'. –