我的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");
我的引用图像文件的方式有什么问题?为什么它可以在一台机器上运行而不在另一台机器上运行?
答案 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" />
这对我来说没问题。