Ich habe ein kleines Texteditor-Fenster erstellt, mit dem der Benutzer einige grundlegende Eigenschaften eines Textbereichs innerhalb des Bildschirms ändern kann. Zwei der verfügbaren Optionen zum Ändern der Eigenschaften von textArea sind die Schriftfarbe und die Schriftfarbe, die beide von separaten Farbwählern bearbeitet werden.JavaFX Änderung einzelner Stil in CSS-Stylesheet
Beim Testen dieser Schaltflächen mit der Methode setStyle ist ein Problem aufgetreten, bei dem immer nur eine Eigenschaft gespeichert werden konnte. Beispiel: Wenn die Textfarbe auf BLAU gesetzt war und die Füllfarbe anschließend auf GELB gesetzt war, blieb die Textfarbe nicht blau, sondern wurde auf den im Stylesheet definierten Standardwert zurückgesetzt (schwarz).
Um dieses Problem zu beheben, habe ich die folgende Methode erstellt;
private void updateTheSyle()
{
this.textArea.setStyle("-fx-control-inner-background: " + toRgbString(this.colorPickerFill.getValue()) +
"; -fx-text-fill: " + toRgbString(this.colorPickerFont.getValue()) + ";");
}
Die toRgbString() Methode auch genannt wird, dies einfach die Benutzereingabe von der Farbauswahl in eine Kette, so dass das setStyle Verfahren der korrekten Parameter zum Sheet passieren kann passiert.
Diese Lösung funktioniert, da es mir ermöglicht, sowohl die Füll- als auch die Schriftfarbe zu ändern, ohne bei der Auswahl auf den Standardwert zurückzusetzen. Allerdings enthält mein Programm mehr als nur Füll- und Schriftfarbe, was zu einer weitaus längeren setStyle-Anweisung beiträgt, wenn diese Optionen hinzugefügt werden.
TLDR: Gibt es eine Möglichkeit, einen einzelnen Stil in einem CSS-Stylesheet zu bearbeiten, ohne die anderen Stile in einer bestimmten Klasse zu beeinflussen?
Interessante Arbeit, Ihre Methode kümmert sich um die Verkettung schön, aber immer noch nicht für einzelne Zeilen in einem CSS-Blatt bewirkt werden. Ich bin nicht sicher, wie dies mehrere Eingaben behandelt, dh die Schriftfarbe wird mehr als einmal geändert, da die von Ihnen erstellte Methode einfach zu einem Listenfeld hinzugefügt wird, anstatt den Wert der Stileigenschaft – dibiasem
zu aktualisieren ! –