java - 为什么我的代码会抛出“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 并且效果很好。
解决方案
推荐阅读
- java - 调用 onClick 时出现“OutOfMemoryError”(崩溃报告)
- debugging - 为什么在加载附近的代码字节时会收到意外的“0xcc”字节?是因为段寄存器%es吗?
- python - 如何仅针对 Python 中的特定数字字符重新格式化字母数字字符串?
- csv - 如何仅从 tsv 文件的一行中选择值?
- c# - 在 wpf mvvm 中切换选项卡后如何刷新选项卡内容
- python - 通过excel使用python从bloomberg api获取数据
- vue.js - 如何为 Caddy + Vue App 配置 Rendora
- php - Laravel 路由 - 在数据库中设置的动态重定向
- json - 使用 Jolt 进行 Json 数组转换
- c++ - 如何将复合数据类型的特定字段提取为数组