Posts

Es werden Posts vom März, 2022 angezeigt.

JavaFX von der IDE bis zur Auslieferung Teil 6: Das Auge isst mit

Bild
 Im letzte Teil haben wir unsere Anwendung auch für das internationale Publikum startklar gemacht. Nun wollen wir das Design der Anwendung ein wenig anpassen. JavaFX-Anwendungen lassen sich über CSS beliebig verändern. Hierzu gibt es online von Oracle ein Referenz . Um ein neues Stylesheet zu erstellen legen Sie in den resources ein Ordner styles und darin eine neue CSS-Datei mit dem Name style.css an. Diese hat folgenden Inhalt: . button { -fx-background-color : #708090 ; -fx-border-color : #000 ; -fx-text-fill : #fff ; -fx-font-family : "Arial" ; } Um nun aber auch noch die Anwendung mit der CSS-Datei zu verknüpfen, müssen wir noch ein bisschen coden. Wir fügen folgenden Code in die Datei HalloJavaFX.java in die Methode start ein:  String stylesheet = Objects. requireNonNull ( HalloJavaFX. class .getResource( "/styles/style.css" ) ).toExternalForm() ; scene.getStylesheets().add(stylesheet) ; So schnell können Sie sämtliche Buttons vom

JavaFX von der IDE bis zur Auslieferung Teil 5: Jetzt wird es international

Bild
 Nachdem unser Taschenrechner nun funktioniert, wollen wir ihn auch für ausländisches Publikum lesbar machen. Dazu müssen wir lokalisierten Text in Resourcen auslagern. Deshalb wechseln wir in den Ordner Resources erstellen einen neuen Ordner lang und fügen dort über New ein neues Resource-Bundle ein. Hier legen Sie neue Locales an, wie hier zum Beispiel deutsch. Die Default-Locale wäre in diesem Fall Englisch, sie wird genommen, wenn sonst keine Locale zutrifft. Der Inhalt der lang.properties ist: application.title = Hello JavaFX application.field1 = first Number application.field2 = second Number  Der Inhalt der lang_de.properties ist: application.title = Hallo JavaFX application.field1 = erste Zahl application.field2 = zweite Zahl Nun erstellen wir eine neue Funktion in der Datei HalloJavaFX, welche auf die Resource-Bundles zugreift: public static ResourceBundle getLanguage () { if (HalloJavaFX. resourceBundle == null ) { ClassLoader classLoader = new URLClassLoader( new