首页 > 解决方案 > 为什么我的代码会抛出“ImageStorageException:图像数据没有加载器”

问题描述

我已经开始了 Java 课程,我们已经开始学习 JavaFX。我无法显示要显示的图像。经过一点调试,我能够将其范围缩小到以下异常:

com.sun.javafx.iio.ImageStorageException:没有图像数据的加载器

我知道路径名是正确的,因为这是我能够修复的第一个错误/异常。当前的 GUI 显示为空白,好像我没有在场景中放置任何内容。我可以添加其他方面(例如标签),但图像永远不会加载。

public class Main extends Application{

public static void main(String[] args) {

launch(args);

}
@Override
public void start(Stage primaryStage) {
    Image Belial = new Image("file:C:\\Users\\jakem\\Desktop\\D&D Stuff\\Belial.jpg");
    System.out.println("Image loaded? " + !Belial.isError());
    if (Belial.isError()) {
        System.out.println(Belial.getException());
    }
    ImageView imageView = new ImageView(Belial);
    HBox hbox = new HBox(imageView);
    Scene scene = new Scene(hbox);
    primaryStage.setScene(scene);
    primaryStage.setTitle("Belial");

    primaryStage.show();
}

这些是我加载的模块,以及将 JavaFX 库添加到我的项目库中。

--module-path ${PATH_TO_FX} --add-modules javafx.controls,javafx.fxml

我正在使用 Intellij。

编辑:事实证明,尽管有 jpg 扩展名,但我的图像文件实际上并不是 jpg 格式。切换到格式正确的 jpg 并且效果很好。

标签: javajavafx

解决方案


推荐阅读