相对URL在javafx中不起作用
我想在标签上贴一张图片,代码是:相对URL在javafx中不起作用,java,url,javafx,Java,Url,Javafx,我想在标签上贴一张图片,代码是: Label userPic = new label(); ImageView userImage = new ImageView( new Image("test/123/headPortrait.png",50.0,50.0,false,false)); userPic.setGraphic(userImage); 但它不断抛出java.lang.IllegalArgumentException:
Label userPic = new label();
ImageView userImage = new ImageView(
new Image("test/123/headPortrait.png",50.0,50.0,false,false));
userPic.setGraphic(userImage);
但它不断抛出java.lang.IllegalArgumentException:无效URL或未找到资源。
我试过file://headPortrait.png
,文件://E:/eclipse/ClassSchedule/headcrative.png
(绝对URL)。这一次编译器没有抛出任何异常,但映像仍然不会显示,应用程序运行非常缓慢
在我尝试将图像添加到标签之前,我的所有代码都工作得很好。将ImageView放入标签中不是一个好做法。我建议您直接将ImageView添加到场景中。 要在类路径中加载图像,最好的方法是使用ResourceStream
this.getClass().getResourceAsStream("/assets/headPortrait.png")
例如。在这种情况下,图像必须位于名为assets的文件夹中。
您的整个代码可能如下所示:
ImageView imageView = new ImageView(new Image(this.getClass().getResourceAsStream("/assets/headPortrait.png"), 50, 50, false, true));
我建议您将图像构造函数的最后一个布尔标志设置为true,因为它提高了图像的质量。有效的url应该是
E:/eclipse/ClassSchedule/headratio.png
或/test/123/headratio.png
,而不是您所写的,我强烈支持使用,但是为什么不利用标签
控件的内容显示
,比如标签
?