为什么我在 JavaFX 中的第二个场景没有出现?
Why is my second scene in JavaFX not showing up?
我有一个应该在两个场景之间切换的 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();
}
只需要将btGenerate上的setOnAction移到声明场景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();
您正在设置一个空场景,这就是不起作用的原因。
我有一个应该在两个场景之间切换的 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();
}
只需要将btGenerate上的setOnAction移到声明场景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();
您正在设置一个空场景,这就是不起作用的原因。