NullPointerException,即使对象指向FXML实例



(我正在使用场景生成器…)

这是MusicGeneratorGUI类…

public class MusicGeneratorGUI extends Application {
@FXML private Sphere icon;
...
}

这里我已经实例化了FXML文件中具有相同ID的对象…

<Sphere fx:id="icon" ... />

但是,控制器类的main方法中的System.out.println(icon);产生null。

'icon'球体对象为空。

这是主类…(控制器类)

public class Main implements Initializable {
@FXML public static Sphere icon;
public static void main(String args[]) {
System.out.println(icon);
}
@Override
public void initialize(URL url, ResourceBundle resourceBundle) {
//Nothing here...
}
...
}

您需要创建一个加载器的实例。

FXMLLoader loader = new FXMLLoader(getClass().getResource("main.fxml"));

然后你可以访问你的控制器的一个实例。

Main main = loader.getController();

可以从控制器访问icon

System.out.println(main.icon); 

注意,你仍然可以通过。

Parent root = loader.load();

你可以考虑从控制器的initialize方法中做这个,这样你就不需要暴露控制器的图标了。另外,为什么你的图标是静态的?我认为你应该放弃静态。

相关内容

  • 没有找到相关文章

最新更新