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

JavaFX - Cannot load image from within project

我的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;
}

我在另一台机器上有完全相同的代码(安装了相同的 OS、相同的 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");

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

我也遇到过和你一样的问题。这些有时是因为构建文件而发生的,您可以尝试清理并构建它。

基本上如果你定义 -fx-background-image: url("images/background.jpg");那就直接参考你的图片的项目包位置。

如果你想用你以前的方式定义它,那么你必须把它和所有完整的目录例子一起写下来 C:\Users\NILAM\Documents\NetBeansProjects\Aplikasi Arsip Kesbangpol\src\Gambar\image.jpg

希望能回答你的问题。

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

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

这对我来说没问题。