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

JavaFX-无法从项目中加载图像

淳于乐池
2023-03-14

我的JavaFX项目可以在一台机器中加载图像,但是相同的代码不能在另一台机器中加载图像。

我有包结构(在src中)-/com/mypackagestructure/view/images/,它保存图像文件。

我的CSS文件位于-/com/mypackagestructure/view/Login。css

Login.css
.root {
     -fx-background-image: url("/com/mypackagestructure/view/images/background.jpg");
     -fx-background-repeat: stretch;
     -fx-background-size: 100%;
     -fx-background-color: transparent;
}

我在另一台机器上有完全相同的代码(安装了相同的操作系统、相同的Eclipse IDE和JDK/JRE(1.8)),它在那里工作。但是在这台机器里我得到以下信息-

Aug 08, 2016 3:36:39 PM com.sun.javafx.css.StyleManager getCachedImage
WARNING: Error loading image: file:/com/mypackagestructure/view/images/background.jpg

在css中,如果我做了以下更改,那么它就工作了。

-fx-background-image: url("images/background.jpg");

我引用图像文件的方式有什么问题?为什么它在一台机器上工作而在另一台机器上不工作?

共有2个答案

薛烨霖
2023-03-14

这可能太晚了,但我通过在参考资料文件夹中有一个名为images的文件夹[然后添加了我的logo.png]实现了这一点。并像FXML一样使用图像

<HBox fx:id="myHBox" style="-fx-background-image: url('images/logo.png')" BorderPane.alignment="CENTER" />

这对我来说没问题。

傅奕
2023-03-14

我也经历过同样的问题,就像你一样。这些有时会发生,因为构建文件,你可以尝试清理和构建它。

基本上如果您定义-fx background image:url(“images/background.jpg”);然后直接引用项目包中图像的位置。

如果你想用你以前的方式定义它,那么你必须用所有完整的目录来写下来,例如C:\用户\NILAM\Documents\NetBeansProjects\Aplikasi阿西普·凯斯邦波尔\src\Gambar\image.jpg

希望能回答你的问题。

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

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

  • 我对javafx非常陌生,而且已经学会了使用代码教程进行测试时: 异常是由第行

  • 这是我的代码: controller.java main.java 当我运行我的项目并在文本字段中键入1并单击按钮时,它将显示图片。现在,在不关闭程序的情况下,我将一个2.png文件添加到res文件夹中。并在文本字段中键入2。点击该按钮后,它给我“java.lang.IllegalArgumentException:Invalid URL:Invalid URL或resource not Foun

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