打开fxml文件一定时间并返回主屏幕?

时间:2019-07-11 18:55:44

标签: javafx javafx-8

如何显示fxml文件几秒钟并关闭该fxml文件并返回到mainpage.fxml?

我试图将hideThispage方法添加到fxml控制器类的initialize方法中,但是我猜想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();
}

我希望这可以弄清楚。

0 个答案:

没有答案