2017-10-23 1 views
0

Ich führe eine JavaFX-App mit mehreren Modulen mit Unterstützung von Gravel (javafx-gradle-plugin 8.8.2). Wenn ich die App erstelle, funktioniert alles gut, sogar native Pakete werden ohne Probleme produziert - aber ich kann keine Ressourcen-Pakete (z. B. für Übersetzungen) hinzufügen. Bitte lassen Sie mich wissen, wo Sie sie platzieren und wie Sie im Java-Code referenzieren können.JavaFX Graplore Ressourcen (Bundles)

Vielen Dank im Voraus.

Antwort

1

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:

proj-struc

Für den Hauptteil folgen Sie einfach der Dokumentation here.

Wenn Sie Fragen haben, zögern Sie nicht zu fragen.

+1

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

+1

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! –

+0

... 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 ...) –