【发布时间】:2016-04-06 22:54:28
【问题描述】:
我想换一个班级的场景,但我遇到了很大的困难。
现在我可以移到第二个屏幕没问题,但是移回第一个屏幕会给我 NullPointerException。
我们将不胜感激。非常感谢。
主类
public class Main extends Application {
Stage ps;
Group root = new Group();
Scene s = new Scene(root, 300, 300, Color.AQUA);
Controller con = new Controller();
public void start(Stage primaryStage) throws Exception {
ps = primaryStage;
con.buttonLayout();
buttonLayout();
primaryStage.setTitle("Hello World");
ps.setScene(s);
primaryStage.show();
}
public void buttonLayout() {
Button but = new Button("first");
but.setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
ps.setScene(con.s);
}
});
root.getChildren().add(but);
}
public static void main(String[] args) {
launch(args);
}
}
其他类
public class Controller{
Group root = new Group();
Scene s = new Scene(root, 300, 300, Color.BLACK);
public void buttonLayout() {
Button but = new Button("back to first");
but.setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
Main main = new Main();
main.ps.setScene(main.s);
}
});
root.getChildren().add(but);
}
}
【问题讨论】:
-
main.ps永远不会被初始化,因此当您在其上调用setScene时会出现空指针异常。
标签: java javafx nullpointerexception scene