5秒钟后是否可以在不使用按钮的情况下更改Java Scene Builder 2.0中的场景

时间:2018-08-05 13:55:31

标签: scenebuilder

基本上我正在使用JavaFX Scene Buidler 2.0,但我想将场景从一个场景切换到另一个场景,而无需使用任何按钮。 主文件 公共类OurFirstProject扩展了应用程序{

public void start(Stage stage) throws Exception {
    Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml"));
    stage.setFullScreenExitHint("");
    //stage.setFullScreenExitKeyCombination(KeyCombination.NO_MATCH);
    Rectangle2D screenBounds = Screen.getPrimary().getVisualBounds();
    Scene scene = new Scene(root, screenBounds.getWidth(), screenBounds.getHeight());
    stage.setScene(scene);
    stage.setFullScreen(true);
    stage.show();

public static void main(String[] args) {
    Application.launch(args);

}

} 公共类FXMLDocumentController实现可初始化{

@FXML
private void change(ActionEvent event) throws IOException {
    Parent sceneChange = FXMLLoader.load(getClass().getResource("Change.fxml"));
    Rectangle2D screenBounds = Screen.getPrimary().getVisualBounds();
    Scene changeScene = new Scene(sceneChange, screenBounds.getWidth(), screenBounds.getHeight());
    Stage Window = (Stage) ((Node) event.getSource()).getScene().getWindow();
    Window.setScene(changeScene);
    Window.setFullScreen(true);
    Window.show();
}

int a = 0;
@FXML
public Button helloButton;
@FXML
private Label ourLabel;

@FXML
private void printHello(ActionEvent e) {
    a++;
    if (a % 2 == 0) {
        ourLabel.setText("Hello World! Kyun" + a);
    } else {
        ourLabel.setText("Hello Dunia" + a);
    }
}

@Override
public void initialize(URL url, ResourceBundle rb) {

在此处输入代码     }

在FXML文件名“ change”中提到的场景,我想在不使用按钮的情况下运行此场景,我想在第一场景的五秒钟延迟上运行此场景。

1 个答案:

答案 0 :(得分:0)

您可以使用Timer()之类的

Timer timer = new Timer();
timer.schedule(new TimerTask() {
        @Override
        public void run() {
            Platform.runLater(new Runnable() {
                @Override
                public void run() {// After this you can add your change.fxml load code
                    Parent root = null;
                    try {
                        root = fxmlLoader.load();
                    }catch(Exception e)
                    {
                        //Exception catch code here
                    }
                    primaryStage.show();//Here you can write your show code like window.show()
                }
            });
        }
    },5000);// 5000- time delay in milliseconds