Java ImageView可以';找不到图像URL
我在网格窗格中显示图像时遇到问题。我得到一个错误,输入流不能为null。异常位于ImageView的创建对象的第一行。正如你们所看到的,图片都在文件夹中。什么可能是问题Java ImageView可以';找不到图像URL,java,image,javafx,imageview,gridpane,Java,Image,Javafx,Imageview,Gridpane,我在网格窗格中显示图像时遇到问题。我得到一个错误,输入流不能为null。异常位于ImageView的创建对象的第一行。正如你们所看到的,图片都在文件夹中。什么可能是问题 ImageView windows = new ImageView(new Image(Main.class.getResourceAsStream("res/windows.png"))); ImageView linux = new ImageView(new Image(Main.class.getReso
ImageView windows = new ImageView(new Image(Main.class.getResourceAsStream("res/windows.png")));
ImageView linux = new ImageView(new Image(Main.class.getResourceAsStream("res/windows.png")));
ImageView mac = new ImageView(new Image(Main.class.getResourceAsStream("res/windows.png")));
ImageView android= new ImageView(new Image(Main.class.getResourceAsStream("res/windows.png")));
GridPane gpanel = new GridPane();
gpanel.setPadding(new Insets(5));
gpanel.add(windows, 0, 0);
gpanel.add(linux, 1, 0);
gpanel.add(mac, 0, 1);
gpanel.add(android, 1, 1);
这是因为它找不到图像,您需要删除路径开头的
res
,例如:
这:“res/windows.png”
->应该是:“/windows.png”
…等等
因为getResourceAsStream(String name)
通过搜索与类关联的资源来查找具有给定名称的资源,并且该资源从项目的根开始,但是因为res
不是另一个包,所以不需要将其添加到相对路径的开头
此外,假设您将
windows.png
放在另一个名为anotherPackage
的包中,那么您可以从main
类(在您的示例中)访问它,如下所示:“/anotherPackage/windows.png”
谢谢,我通过创建File类的对象解决了它,将对象放入图像对象和ImageView对象中