JavaFX gradle资源(包)

时间:2017-10-23 22:09:54

标签: gradle javafx resources

我运行了一个带有gradle支持的多模块JavaFX应用程序(javafx-gradle-plugin 8.8.2)。当我构建应用程序时,一切都工作正常,甚至本机包生成没有问题 - 但我不能包括Resources-Bundles(例如翻译)。 请让我知道在哪里放置它们以及如何在Java代码中引用。

提前致谢。

1 个答案:

答案 0 :(得分:1)

K,找到了解决方案。希望它能在未来帮助其他人:

<强> MainEventContainer.java:

@Override
public void start(Stage primaryStage) throws Exception {
ResourceBundle bundle = ResourceBundle.getBundle("UIResources", new Locale("de"));
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/event_container.fxml"), bundle);
Parent root = fxmlLoader.load();
EventContainerController controller = fxmlLoader.getController();

System.out.println(bundle.getString("greeting"));

Scene scene = initScene(primaryStage, root);

scene.getStylesheets().add("/styles/styles.css");

// ...
}

<强> UIResources.properties:

greeting=Hello

<强> UIResources_de.properties:

greeting=Hallo

<强>风格/ styles.css的:

.button:hover {
    -fx-background-color: #81C784;
}

<强> event_container.fxml:

<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.layout.VBox?>
<VBox fx:id="root" alignment="CENTER" prefHeight="300.0" prefWidth="500.0"
      xmlns="http://javafx.com/javafx/8.0.112" xmlns:fx="http://javafx.com/fxml/1"
      fx:controller="com.kjtech.EventContainerController">
   ...
</VBox>

项目结构:

proj-struc

对于gradle-part,只需按照文档here

如果您有任何疑问,请随时提出。