无法加载图像 - Javafx
Image cannot be loaded - Javafx
我正在尝试使用代码加载图像:
Image image = new Image(AddOrderController.class.getResourceAsStream("/resources/icons/ok_icon.png"));
我收到异常:
java.lang.NullPointerException: Input stream must not be null
我的项目树很简单:
当我将 ok_icon.png
添加到包控制器时,一切正常并且图标可以工作,但在 resources/icons
中无法加载图标。谁能帮我重写代码?
看来你必须先上一个目录:
Image image = new Image(AddOrderController.class.getResourceAsStream("../resources/icons/ok_icon.png"));
如果这也不起作用,请检查两个源文件夹 (src) 是否真的相同,或者它们是否具有不同的父文件夹
由于您将 src/test/resources
作为源文件夹,resources
的内容将作为应用程序的一部分部署到类路径的根目录。这意味着 icons
在类路径的根目录中。
您可以通过使用系统文件浏览器(Mac 或 [=30= 上的 Finder)检查输出文件夹的内容来验证这一点,我猜是 target/classes
] explorer,或者现在叫什么)。您可以通过从菜单中选择 "Project",然后选择 "Properties"、select、"Java Build Path"、select "Source" 选项卡来验证 Eclipse 中的输出文件夹,并查看指定为 "Default output folder".
的内容
如果您提供给 getResourceAsStream
的路径以前导 /
开头,那么该路径将相对于类路径进行解释。所以
Image image = new Image(AddOrderController.class.getResourceAsStream("/icons/ok_icon.png"));
应该可以。
我正在尝试使用代码加载图像:
Image image = new Image(AddOrderController.class.getResourceAsStream("/resources/icons/ok_icon.png"));
我收到异常:
java.lang.NullPointerException: Input stream must not be null
我的项目树很简单:
当我将 ok_icon.png
添加到包控制器时,一切正常并且图标可以工作,但在 resources/icons
中无法加载图标。谁能帮我重写代码?
看来你必须先上一个目录:
Image image = new Image(AddOrderController.class.getResourceAsStream("../resources/icons/ok_icon.png"));
如果这也不起作用,请检查两个源文件夹 (src) 是否真的相同,或者它们是否具有不同的父文件夹
由于您将 src/test/resources
作为源文件夹,resources
的内容将作为应用程序的一部分部署到类路径的根目录。这意味着 icons
在类路径的根目录中。
您可以通过使用系统文件浏览器(Mac 或 [=30= 上的 Finder)检查输出文件夹的内容来验证这一点,我猜是 target/classes
] explorer,或者现在叫什么)。您可以通过从菜单中选择 "Project",然后选择 "Properties"、select、"Java Build Path"、select "Source" 选项卡来验证 Eclipse 中的输出文件夹,并查看指定为 "Default output folder".
如果您提供给 getResourceAsStream
的路径以前导 /
开头,那么该路径将相对于类路径进行解释。所以
Image image = new Image(AddOrderController.class.getResourceAsStream("/icons/ok_icon.png"));
应该可以。