我是JavaFX的新手,所以我的编码不是最好的。我的程序有一个带有2个不同场景的舞台。为了更好的概述,我为第二个场景创建了一个新类。在第二个场景中,我想使用一个按钮返回第一个场景。方法:primaryStage.setScene(scene)无法正常工作,我不知道为什么。有人可以帮帮我吗? :)
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
try {
GridPane primarygridpane = new GridPane();
Scene scene = new Scene(primarygridpane,400,400);
...
primaryStage.setScene(scene);
primaryStage.show();
} catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
launch(args);
}
}
public class Harnwegsinfektion {
public static void create (Stage primaryStage){
GridPane secondarygridpane = new GridPane();
Scene scene2 = new Scene(secondarygridpane,400,400);
buttonBack.setOnAction(new EventHandler<ActionEvent>(){
@Override
public void handle(ActionEvent e) {
primaryStage.setScene(scene);
}
});
primaryStage.setScene(scene2);
primaryStage.show();
}
}
答案 0 :(得分:0)
问题在于您的scene
变量名为scene2
,而您正在使用setScene()
调用scene
。
我真的不知道调用create()
的时间和地点,但是如果您想从按钮返回第一个场景,则必须在切换之前保存原始场景:
public static void create (Stage primaryStage){
GridPane secondarygridpane = new GridPane();
Scene scene2 = new Scene(secondarygridpane,400,400);
Scene originalScene=primaryStage.getScene(); //save the previous scene
buttonBack.setOnAction(new EventHandler<ActionEvent>(){
@Override
public void handle(ActionEvent e) {
primaryStage.setScene(originalScene); //go back to the previous scene
}
});
primaryStage.setScene(scene2);
primaryStage.show();
}