Hallo JD-Community.
So, nachdem ich X Beiträge zu dem Thema gelesen hatte, habe ich nun selber die Hand angelegt und so entstand mein eigenes Thema "Breeze Dark".
Ich möchte im Voraus schicken, dass ich versierter Linuxer bin und beruflich mit GUI von Softwareanwendungen zu tun habe.
Dieses Thema basiert an nahezu perfekten Komponenten- und Farbenkonstellationen von dem Breeze-Projekt, welches unter KDE-Anwendern verbreitet und bekannt ist.
Bevor ich in die Details gehe, möchte ich kurz zusammenfassen, was man verstanden haben muss, um an der Oberfläche von JD2 efektiv drehen zu können.
Es gibt 2 Punkte, mit denen sich ein Thema definiert:
- Icons
- Komponenten von Java-Oberfläche (Button, CheckBox, Spinner, Panel, ProgressBar etc.) samt ihrer Eigenschaften (Größe, Farbe etc.), die in Klassen definiert wurden und zur Laufzeit gerendert werden.
Zu
KOMPONENTEN
Die bisherigen hier oft besprochenen Dark-Themen basierten auf den Themen von Synthetica. Das hat den Nachteil, dass die Oberfläche-Elemente "von Hand" als Bilder erstellt werden mussten und in der Klasseneigenschaften auf diese Bilder verwiesen wurde. Es waren ca. 50 Bilder für alle benötigten Komponenten (Button, CheckBox, Spinner, Panel, ProgressBar etc.). Diese Bilder hatten natürlich schon ihre Farben, die dann wiederum nicht mehr "customisebar" waren und wieder manuell nachgemacht werden mussten.
Somit war es für mich klar, dass nur die Lösung von FlatLaf in Frage kommt, wo es GAR KEINE Bilder für die Oberfläche gibt. Dazu kam noch der Super-Editor, der die Elemente anzeigt, wenn man sie formatiert. Hierzu kommt noch, dass man die Klassen nicht direkt verändern muss, sondern einfach über Parametrisierung abändern kann. Es reicht dann nur eine einzige *.properties-Datei zu überschreiben, um das Design komplett zu verändern.
Zu
Icons
Hier ist das Thema deutlich einfacher. Im Installationverzeichnis von JD2 befindet sich ein Verzeichnis "themes". Hier sollte man das Verzeichnis "standard" unter einem anderen Namen dazu kopieren und die Symbole eins nach dem anderen erstzen.
Hinweis: es sollen UNBEDINGT Grafiken im SVG-Format verwendet werden. Diese sollen (möglichst) pixelgenau als 16x16 Pixel gezeichnet werden.
Im Breeze-Projekt gibt es jede Menge von Action-Icons in dieser Größe. Einige, die fehlten, habe ich im selben Design nachgezeichnet.
Was man noch zur Icon-Struktur-Wissen muss: im Hauptverzeichnis sind die meisten Symbole für die Oberfläche, im Verzeichnis "exttable" sind Symbole, die in der Tabellen-Bedienung verwendet werden (Spalten-Konfig, Sperre, Sortierung). Verzeichnisse "dialog" und "logo" sind selbsterklärend.
Einige Tipps zum "Theming"
Es geht eigentlich darum, Konstellationen für 3 Farben zu definieren:
- dunkle Farbe
- helle Farbe
- Akzent-Farbe
entsprechend für Light-Mode
- heller Hintergrund
- dunkle Schrift / Icons
- Akzent-Farbe
entsprechend für Dark-Mode
- dunkler Hintergrund
- helle Schrift / Icons
- Akzent-Farbe
Hinweis: Akzent-Farbe bleibt unverändert. Es können noch ergänzende Farben für Icons (rot, grün, blau, gelb) hinzukommen, um bestimmte Aktionen zu betonen.
(siehe Breeze-Projekt) -> github.com/KDE/breeze-icons
Im nächsten Post gehe ich detaillierter auf das Thema für JD2.
--------------------------------------------------------------------------------------------
SCREENSHOTS:
disk.yandex.ru/d/k6eGj-DBSAlZkg
Eine gezippte Datei mit Icons + Konfigurationsdateien
disk.yandex.ru/d/Mhyua2xuRh40AQ