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

时间:2016-08-08 10:44:23

标签: css eclipse javafx javafx-2 javafx-8

我的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 个答案:

答案 0 :(得分:1)

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

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

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

希望能回答你的问题。

答案 1 :(得分:0)

这可能太晚了,但我通过在资源文件夹中设置一个名为images [Then added my logo.png]的文件夹来实现这一点。并使用FXML中的图像

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

这对我来说没问题。