JavaFX Image:检查图像是否有效

时间:2018-06-13 08:04:30

标签: image javafx exception-handling

我编写了一个包含许多配置的小型JavaFX应用程序。其中之一是,您可以在配置文件中定义要使用的图像。

现在我想为每个案例添加错误处理,但我不知道如何检查特定图像是否可绘制。

我已经知道了,如何检查是否存在图像,现在我只想知道,如何检查,如果javafx会绘制我的图像或者什么也不做。

Image img = new Image("file:corrupted.png");
gc.drawImage(img, 0, 0);

在这种情况下,不会抛出任何异常,并且gc只会绘制任何内容。

if (!img.isValid()) {
    throw new IllegalArgumentException;
}

我想做类似上面代码的事情

1 个答案:

答案 0 :(得分:3)

可以在加载Image期间检测错误。

来自Image.errorProperty()

  

指示加载图像时是否检测到错误。

如果您需要知道导致错误的原因,可以使用:

来自Image.exceptionProperty()

  

导致图像加载失败的异常。仅当error属性设置为true时才包含非null值。

如果您的Image是使用在后台加载的构造函数重载构造的,那么您还可以使用Image.progressProperty()检查图像是否已完成加载。如果image.getProgress() == 1 && !image.isError()true,那么您可以确定存在有效图片。