这是我试图运行的当前代码。
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;
public class class1 extends Application{
public Stage primaryStage;
@Override
public void start(Stage primaryStage){
this.primaryStage= primaryStage;
// TODO Auto-generated method stub
GridPane pane = new GridPane();
Label t = new Label("test");
Button btn = new Button("hello");
pane.getChildren().addAll(t,btn);
btn.setOnAction(e->{
class2 c = new class2();
primaryStage.setScene(c.getScene());
});
Scene scene = new Scene(pane);
primaryStage.setTitle("Chillax");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
// TODO Auto-generated method stub
launch(args);
}
}
这是1级,当我点击按钮时,它会在class2上更改为Scene而没有问题
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;
public class class2 extends class1 {
public Scene getScene() {
GridPane pane2 = new GridPane();
Label t = new Label("test222");
Button btn = new Button("hello22");
pane2.getChildren().addAll(t,btn);
btn.setOnAction(e->{
class3 c3 = new class3();
c3.getScene();
primaryStage.setScene(c3.getScene());
});
Scene c2 = new Scene(pane2);
return c2;
}
}
现在我想通过从class3获取场景来对class2做同样的事情但是我无法找到解决问题的方法,因为如果我点击第2课上的按钮就会弹出错误信息。
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.GridPane;
public class class3 extends class2 {
public Scene getScene() {
GridPane pane3 = new GridPane();
Label t = new Label("test222");
Button btn = new Button("hello22222");
pane3.getChildren().addAll(t,btn);
Scene c3 = new Scene(pane3);
return c3;
}
}
任何其他有效的方法来解决这个问题? 想法是从scene1到scene2再到scene3。