JavaFX - FXMLLoder getController() returns 空
JavaFX - FXMLLoder getController() returns null
这让我抓狂。我正在尝试从 FXML Loder 获取控制器,但我收到 NullPointerException。
class 我试图获取控制器数据的地方。
Node node= (Node) event.getSource();
Stage stage= (Stage) node.getScene().getWindow();
FXMLLoader loader = new FXMLLoader(getClass().getResource("/view/admin.fxml"));
BorderPane bp = loader.load();
Scene scene = new Scene(bp);
stage.setScene(scene);
adminController ac = loader.getController();
System.out.println(ac.adminName.getText());
ac.setLoggedIn(admin);
stage.show();
xml 文件和控制器工作正常,因为当我删除 ac.setLoggedIn(admin) 行的注释时它没有给我异常。
在控制器中,我将 FXML 对象声明为 Label 而不是文本对象。同样在我在这里写的代码中,我试图在实际将对象分配给控制器之前打印管理员名称。
这让我抓狂。我正在尝试从 FXML Loder 获取控制器,但我收到 NullPointerException。
class 我试图获取控制器数据的地方。
Node node= (Node) event.getSource();
Stage stage= (Stage) node.getScene().getWindow();
FXMLLoader loader = new FXMLLoader(getClass().getResource("/view/admin.fxml"));
BorderPane bp = loader.load();
Scene scene = new Scene(bp);
stage.setScene(scene);
adminController ac = loader.getController();
System.out.println(ac.adminName.getText());
ac.setLoggedIn(admin);
stage.show();
xml 文件和控制器工作正常,因为当我删除 ac.setLoggedIn(admin) 行的注释时它没有给我异常。
在控制器中,我将 FXML 对象声明为 Label 而不是文本对象。同样在我在这里写的代码中,我试图在实际将对象分配给控制器之前打印管理员名称。