JavaFX部署 – 图像丢失
我在JavaFX中用e(fx)clipse完成了一个小型私有项目。 现在我想将它导出为可运行的jar文件。 一切正常,除了窗格和按钮背景图像丢失的事实。 这些图像的路径是在单独的CSS文件中定义的。 该文件中的其他定义实现得很好,只有图像丢失。 任何想法可能是什么原因? 或者是否有更好的方法来发布已完成的Java项目?
这似乎是一个普遍的问题。 我自己也在努力。 看看我如何在CSS中引用css和图像。
这是一个适用于开发环境,Scene Builder和打包JAR的解决方案。
文件夹结构:
Main.java:
package application; import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Scene; import javafx.scene.layout.AnchorPane; import javafx.stage.Stage; public class Main extends Application { @Override public void start(Stage primaryStage) { try { FXMLLoader loader = new FXMLLoader(Main.class.getResource("view/RootLayout.fxml")); AnchorPane rootLayout = (AnchorPane) loader.load(); Scene scene = new Scene(rootLayout, 400, 400); scene.getStylesheets().add(getClass().getResource("css/application.css").toExternalForm()); primaryStage.setScene(scene); primaryStage.show(); } catch(Exception e) { e.printStackTrace(); } } public static void main(String[] args) { launch(args); } }
RootLayout.fxml:
RootLayoutController.java:
package application.view; import javafx.fxml.FXML; import javafx.scene.control.Button; public class RootLayoutController { @FXML Button sunButton; @FXML public void handleSunButtonClick() { System.out.println( "Button clicked"); } }
toolbar.css:
.sun-button { -fx-graphic: url('./icons/sun.png'); }
application.css:
.root { -fx-background-color:lightgray; }
sun.png:
这适用于开发环境和打包JAR(在Eclipse中选择“将所需库提取到生成的JAR中”)。
屏幕截图(只是一个带有通过css加载图标的按钮)