Wie kann ich CSS für die gesamte JavaFX-Anwendung dynamisch hinzufügen und entfernen?

8

Ich verwende JDK8 build 87 und möchte css stylesheets dynamisch hinzufügen und entfernen, sodass sie von meiner gesamten JavaFX -Anwendung verwendet werden können.

Im Moment setze ich den Standard styleSheet mit diesem Befehl:

%Vor%

und dann, wenn ich ein zusätzliches CSS-Stylesheet hinzufügen möchte, mache ich das:

%Vor%

Das funktioniert, aber ich habe zwei Probleme. Erstens, es ist ein private API und zweitens scheint es keine Möglichkeit zu geben, es zu entfernen, wenn ich damit fertig bin (Ich benutze OSGI , so ist es üblich für Module zu kommen und zu gehen).

Es wurde davon gesprochen, dass StyleManager Anfang 2012 zu public API verschoben wurde, aber ich bin mir nicht sicher, ob da etwas passiert ist.

Kennt jemand eine öffentliche Methode, um styleSheets so hinzuzufügen, dass sie für die gesamte JavaFX -Anwendung gilt? Wie würde man sie auch entfernen?

(Ich habe keine Berechtigungen zum Erstellen des neuen Tags javafx-8)

    
Boomah 01.05.2013, 12:57
quelle

1 Antwort

3

Nach Global Stylesheet für Ihre GUI-Anwendung :

%Vor%

Wie Boomah jedoch ausführt, ist StyleManager.getInstance().addUserAgentStylesheet nicht Teil der JavaFX-API, daher wird diese Methode nicht empfohlen, sie direkt aus dem Benutzercode zu verwenden. Darüber hinaus funktioniert es nur für das Hinzufügen eines globalen Stylesheets und nicht für das Entfernen eines solchen Stylesheets, nachdem das Stylesheet hinzugefügt wurde.

Die Abenteuerlustigeren könnten einen Patch erstellen, um Boomahs vorgeschlagenes Feature hinzuzufügen, indem sie die StyleManager , um das Entfernen globaler Stylesheets zu unterstützen und Klassenquellcode, um eine öffentliche API für die neue Funktion bereitzustellen, die das aktualisierte StyleManager verwendet, und dann den Patch an openjfx-dev zur Einbindung in die JavaFX-Plattform.

In der Zwischenzeit können Sie Ihr Benutzer-Stylesheet manuell für jede Ihrer Anwendungsszenen festlegen - eine Art von Schmerz, aber da sind Sie. . .

    
jewelsea 01.05.2013, 16:45
quelle

Tags und Links