Почему моя вторая сцена в JavaFX не отображается? - PullRequest
0 голосов
/ 05 декабря 2018

У меня есть программа на JavaFX, которая должна переключаться между двумя сценами, первая отлично работает, но вторая сцена (scene2) пуста и не показывает созданную мной кнопку, любая помощь будет принята с благодарностью!

@Override
public void start(Stage primaryStage) {
    //first scene
    Button btGenerate = new Button("Generate My First Scene!");
    btGenerate.setOnAction((ActionEvent event) -> {primaryStage.setScene(scene2);});

    GridPane gPane = createTextFieldPane();
    gPane.add(btGenerate, 0, 6);
    Scene scene1 = new Scene(gPane, 600, 600);

    //second scene
    Button btReturn = new Button("Make a New Scene!");
    btReturn.setOnAction((ActionEvent event) -> {primaryStage.setScene(scene1);});

    Group root = new Group();
    root.getChildren().add(btReturn);
    Scene scene2 = new Scene(root, 600, 600, Color.LIGHTBLUE);

    primaryStage.setTitle("Switch Scenes!");
    primaryStage.setScene(scene1);
    primaryStage.show();                

}

1 Ответ

0 голосов
/ 05 декабря 2018

Просто нужно переместить setOnAction на btGenerate после объявления сцены 2

    btGenerate.setOnAction(e-> {
        primaryStage.setScene(scene2);
    });

Этот фрагмент кода должен быть здесь:

    Group root = new Group();
    root.getChildren().add(btReturn);
    Scene scene2 = new Scene(root, 600, 600, Color.LIGHTBLUE);
    btGenerate.setOnAction(e-> {
        primaryStage.setScene(scene2);
    });
    primaryStage.setTitle("Switch Scenes!");
    primaryStage.setScene(scene1);
    primaryStage.show();

Вы устанавливали пустую сцену,вот почему не работает.

...