【问题标题】:Relative URL not working in javafx相对 URL 在 javafx 中不起作用
【发布时间】:2017-08-09 08:25:43
【问题描述】:

我想在标签上放一张图片,代码是:

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: Invalid URL or resource not found.

我已经尝试过file://headPortrait.pngfile://E:/eclipse/ClassSchedule/headPortrait.png(绝对 URL)。这次编译器没有抛出任何异常,但是图像仍然不会显示,并且应用程序运行很慢。

在我尝试将图像添加到标签之前,我的所有代码都运行良好。

【问题讨论】:

标签: java url javafx


【解决方案1】:

将 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));

我建议您将 Image 构造函数的最后一个布尔标志设置为 true,因为它可以提高图像的质量。

【讨论】:

  • 我强烈支持使用embedded-resource,但为什么不利用Labeled 控件的ContentDisplay,例如Label
猜你喜欢
  • 2019-02-02
  • 2021-10-15
  • 2012-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-09
相关资源
最近更新 更多