K, habe eine Lösung funktioniert. Hoffentlich wird es andere in der Zukunft helfen:
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/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>
Projektstruktur:
Für den Hauptteil folgen Sie einfach der Dokumentation here.
Wenn Sie Fragen haben, zögern Sie nicht zu fragen.
Nur um zu erwähnen: das ist nichts, was Javafx-Gradle-Plugin verwandt ist (soweit ich sehen kann). * Haftungsausschluss: * Ich bin der Schöpfer dieses Plugins. – FibreFoX
Ich weiß :) Wirklich tolle Arbeit, die Sie zur Verfügung stellen. Ich danke dir sehr. Zurück im Jahr 2014 verbrachte ich viele schmerzhafte Stunden, bis ich verstand, dass es nicht die einfachste Aufgabe ist, eine JavaFX-App mit einem App-Icon zu versenden. Ihr Plugin erledigt den Job ohne Probleme. Hut ab! –
... der Grund, warum ich über das Plugin schrieb, war, dass die Projektstruktur auf einer Gradle/Maven vs. "Default IntelliJ Application" Config unterschiedlich zu sein scheint. - und ich denke, der Prozess der Verpackung der Ressourcen ist auch anders (aber vielleicht liege ich falsch ...) –