gpt4 book ai didi

java - 在 JavaFX 中加载图像

转载 作者:行者123 更新时间:2023-11-30 07:55:56 25 4
gpt4 key购买 nike

我正在尝试使用 JavaFX 的 Image 类加载图像。

这是我的代码:

Image image = new Image(file.getAbsolutePath());

file 只是一个加载图像的文件。

我收到以下错误:

java.lang.IllegalArgumentException: Invalid URL or resource not found

完整代码如下:

FileChooser fileChooser = new FileChooser();
fileChooser.getExtensionFilters().addAll(
new FileChooser.ExtensionFilter("JPG","*.jpg"),
new FileChooser.ExtensionFilter("JPEG","*.jpeg")
);
fileChooser.setTitle("Choose file...");
fileChooser.setInitialDirectory(
new File(System.getProperty("user.home"))
);
File file = fileChooser.showOpenDialog(stageOfEvent);

if(file != null) {
Image image = new Image(file.getAbsolutePath());
imageView.setImage(image);
}

最佳答案

为了构造一个Image对于位于文件系统中的文件,您需要使用 file: 协议(protocol),如下所示:

Image image = new Image("file:" + file.getAbsolutePath());

不指定它会告诉 JavaFX 在类路径中查找图像,而不是在文件系统中。

引用图像Javadoc:

// The image is located in my.res package of the classpath
Image image2 = new Image("my/res/flower.png", 100, 150, false, false);

// The image is located in the current working directory
Image image4 = new Image("file:flower.png", 0, 100, false, false);

此构造来自 URL Java 语法。

正如 @mipa 在评论中指出的,您还可以使用:

Image image = new Image(file.toURI().toURL().toExternalForm());

关于java - 在 JavaFX 中加载图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32669359/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com