Как отобразить файл fxml на несколько секунд, закрыть этот файл fxml и вернуться на главную страницу.fxml?
Я пытался добавить метод hideThispage к методу initialize в классе контроллера fxml, но я предполагаю, что методы initialize просто запускаются до фактической загрузки класса, поэтому я не могу запустить этот код.
@FXML
public void hideThisPage() throws InterruptedException, IOException {
Window window = new Stage();
PauseTransition pause = new PauseTransition(Duration.seconds(5));
pause.setOnFinished(e -> window.hide());
pause.play();
FxmlDisplay fxmlDisplay = new FxmlDisplay();
fxmlDisplay.stageSelection("View/Main.fxml");
}
Чтобы вернуться к main.fxml или любому другому fxml, у меня есть метод, который я вызываю:
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource(path));
Parent root = fxmlLoader.load();
Stage stage = new Stage();
stage.setScene(new Scene(root));
stage.show();
В моем случае в моем файле printreceipt.fxml есть кнопка печати, которая печатает содержимое. Затем он переключается на printpage.fxml (я могу перейти на страницу) Но моя проблема в том, что printpage.fxml должен отображаться только в течение 5 секунд и закрываться. тогда он должен вернуться к main.fxml. как и где я могу вызвать метод hidethisPage ()?
@FXML
void printRandomTicket(ActionEvent event) throws SQLException, ClassNotFoundException, JRException, IOException, InterruptedException {
FxmlDisplay fxmlDisplay = new FxmlDisplay();
((Node) event.getSource()).getScene().getWindow().hide();
fxmlDisplay.stageSelection("/View/Dialogs/PrintingTicket.fxml");
GenerateTicket generateTicket = new GenerateTicket();
generateTicket.generateTicket();
PrintTicket printTicket = new PrintTicket();
printTicket.printTicket();
}
Надеюсь, это проясняет это.