В настоящее время я работаю с двумя классами контроллеров.Как закрыть сцену через определенное время JavaFX
В Controller1 он создает новый этап, который открывается сверху основного.
Stage stage = new Stage();
Parent root = FXMLLoader.load(getClass().getResource("Controller2.fxml"));
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
Теперь, когда эта стадия открыта, я хочу, чтобы она оставалась открытой около 5 секунд до закрытия.
В Controller2, я пытался что-то вроде реализации
long mTime = System.currentTimeMillis();
long end = mTime + 5000; // 5 seconds
while (System.currentTimeMillis() > end)
{
//close this stage
}
, но я понятия не имею, что положить в то время цикла, чтобы закрыть его. Я пробовал все виды, и ничего не работает.
Если вы используете такие методы, вы бы * имели *, чтобы запустить это в потоке, иначе содержимое сцены не будет отображаться. Кроме того, вам придется обернуть 'stage.close()' в 'Platform.runLater (...)', поскольку это должно быть выполнено в потоке приложения FX. Легче использовать 'PauseTransition'. –