【问题标题】:JavaFX image nullpointerexceptionJavaFX 图像空指针异常
【发布时间】:2014-05-18 23:03:03
【问题描述】:

我正在尝试声明一个 Image 对象,但每次尝试使用它时都会收到 NullPointerException。这是我的构造函数:

final Image systemSecureImage = new Image((getClass().getResource("images/notifications/systemSecure.png")).toString());

当我尝试在方法中使用它时,它会引发错误。比如……

sample.sampleMethod(image);

知道我做错了什么吗?我还尝试了另外两种方法:

Image systemSecureImage = new Image("images/notifications/systemSecure.png");
Image systemSecureImage = new Image("file://images/notifications/systemSecure.png");

【问题讨论】:

标签: java image javafx javafx-2 javafx-8


【解决方案1】:

Image的构造函数需要资源路径的外部形式。

final Image systemSecureImage = new Image((getClass().getResource("images/notifications/systemSecure.png")).toExternalForm());

【讨论】:

  • 我仍然遇到同样的错误,原因是:java.lang.NullPointerException
【解决方案2】:

您确定是由于图像引发了 NullPointerException 吗?
如果行

sample.sampleMethod(image);

抛出该 NPE,这是因为 sample 为空,即未启动。仔细观察异常堆栈跟踪,并准确确定异常发生在哪一行。

【讨论】:

    【解决方案3】:

    您必须创建一个新的源文件夹才能让 javafx 找到您的图像;这在 javafx 2 和 javafx 8 中都对我有用。

    假设你有那个项目:

    project/src
    project/lib
    project/img
    project/img/image.png
    

    只需右键单击eclipse中的img文件夹->构建路径->用作源文件夹
    您的图像将类似于:new Image("image.png");

    希望对你有帮助, 劳伦兹

    【讨论】:

    • 我实际上在使用 NetBeans。是否有类似的事情与我有关?
    • 我没有使用 Netbeans,但如果我没记错的话,这应该对您有用:右键单击您的项目 -> 单击“属性”-> 然后您应该会看到“源”突出显示 - > 点击“添加文件夹...”,其中显示“源包文件夹”
    猜你喜欢
    • 2016-07-11
    • 1970-01-01
    • 2016-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多