当前位置: 首页 > 知识库问答 >
问题:

在JavaFX中加载图像

郎健柏
2023-03-14

下面是我的代码:

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

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

我得到以下错误:

以下是完整的代码:

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);
}

共有1个答案

景鹏飞
2023-03-14

为了使用位于文件系统中的文件构造映像,您需要使用file:协议,如下所示:

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);

这个构造来自Java的url语法。

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

Image image = new Image(file.toURI().toURL().toExternalForm());
 类似资料:
  • 问题内容: 我测试了此代码以创建带有图像的对话框。 我将图像文件放入目录中。但是由于某些原因,图像无法显示。你能帮我纠正我的错误吗? 问题答案: 只需替换以下代码: 有了这个 Docu参考。 https://docs.oracle.com/javase/8/javafx/api/javafx/scene/image/Image.html 当您将a传递给该类时,可以用 四种不同的方式 处理( 从do

  • 为了创建带有图像的对话框,我测试了这段代码。 我将图像文件放入目录。但是由于某种原因,图像不显示。你能帮我改正错误吗

  • 我有这个按钮,当我想添加图像动态到我的锚窗格,但目前它没有工作的预期。我试图在JavaFX标签中加载一个图像,下面是我的代码。 FXMLDocumentController.java fxmlDocument.fxml 错误 null 我正在使用netbeans IDE

  • 我试图在JavaFX中实现一个非常简单的Raspberry Pi接口。我用的是一台电脑。基于fxml的布局和样式我的项目与css。我的问题是,尽管该应用程序在我的主计算机(从eclipse运行)上运行得很好,但它在Raspberry上也不工作,当我尝试在主计算机上运行导出的jar时也不工作。 我就是这样把纽扣剥皮的。当然,resources/images文件夹位于我的构建路径中。按钮的颜色与我在c

  • 我正在使用Scene Builder2.0和eclipse Luna。在fxml文件中,我有我的场景的代码和图像。如果我在eclipse上测试这一点,一切都是正常的,但是如果我将它导出到可运行的jar中,然后运行它,我就会得到没有图像的窗口...以下是部分代码: 文件结构: 我觉得问题出在路径上,但我不知道这条路是怎么走的。加载程序代码: 初始化函数:

  • 我想在对话框窗口中显示图像(保存在项目文件夹中),但当我运行我的方法showDialogWithImage时,我会得到文件NotFoundException:imgs\pic1。jpg(系统无法找到指定的文件),尽管图像位于那里。 我也尝试过以这种方式加载图像: Image=new Image(getClass(). getResourceAsStream(path));,但遇到了同样的问题。 是