Closed toby63 closed 2 years ago
Wie wäre es mit FlatLaf? 😉 https://github.com/JFormDesigner/FlatLaf
Wird übrigens in der aktuellen Version von install4j verwendet. Sowohl in der install4j IDE als auch in der erzeugten Installation. Z.B. von MediathekView: 😄
MV besteht 30/70 aus Swing und JavaFX. FlatLaf würde sich auf die noch vorhandenen Swing-Komponenten auswirken, nicht jedoch auf die JavaFX-Anteile. Ziel ist es zukünftig Stück für Stück Richtung JavaFX zu migrieren bzw. zu einer komplett anderen Lösung. Für JavaFX gibt es meines Wissens nach bisher keine vernünftigen Styles für einen Dark mode. Von daher wäre es durchaus wünschenswert dark mode anzubieten, aber recht schwer zu realisieren.
@derreisende77 Interessant, danke für die Erklärung.
Ich habe ein wenig recherchiert und verschiedene Posts über die -fx-base
Variable für CSS gefunden.
Es scheint so zu sein, dass man diese benutzen kann, um dynamisch alle anderen Farben daran anzupassen (laut den Angaben macht JavaFX das dann automatisch).
Siehe z.b.: https://dlsc.com/2017/07/03/javafx-tip-26/ https://tomsondev.bestsolution.at/2014/03/13/eclipse-on-javafx-get-dark-the-power-of-javafx-css/
Nun weiß ich natürlich nicht wie genau in MediathekView die Farbgebung funktioniert, aber da ich nur einige wenige .css dateien in src/main/resources/mediathek/res/css/
gefunden habe, gehe ich davon aus, das weitestgehend die reguläre JavaFX CSS (also wahrscheinlich modena
) benutzt wird.
Ist das korrekt?
Wäre es dann vielleicht möglich die oben genannte Variante zu implementieren? (Eventuell ja in einer als experimentell gekennzeichneten Option?)
Natürlich kann man den branch clonen und die CSS anpassen. Das wird bisher nur nicht gemacht da wir die standard Farbgebung nutzen. Aber Du wirst feststellen dass dann die JavaFX-Anteile dunkel sind, die Swing Anteile nicht. Dann müsstest Du das Swing L&F ändern. Dann passen die aber auch nicht zusammen und es sieht am Ende ggf. auf deinem Desktop gut aus, die macOS Nutzer brechen aber ins Essen. Da es nur einen Client für alle Plattformen gibt wird das erst angegangen wenn es seitens Oracle(Swing) und der JavaFX community hierzu vernünftige Lösungen gibt. Das ist bisher nicht der Fall.
Ich denke fast, dass da schon mal jemand nach gefragt hat, aber ich konnte hier auf Github kein derartiges Issue finden.
Unter Linux passen sich viele Programme dem global gesetzten Design an, MediathekView ist da leider eine Ausnahme und scheint in den Einstellungen auch keine eigene Option dafür zu bieten.