JavaFX Image:检查图像是否有效

Phi*_*ipp 2 javafx image exception

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

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

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

Image img = new Image("file:corrupted.png");
gc.drawImage(img, 0, 0);
Run Code Online (Sandbox Code Playgroud)

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

if (!img.isValid()) {
    throw new IllegalArgumentException;
}
Run Code Online (Sandbox Code Playgroud)

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

Jai*_*Jai 5

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

Image.errorProperty()

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

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

Image.exceptionProperty()

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

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