JavaFX, TableView und die Schriftfarbe der markierten Zeile
Bekomme ich TableView wie diese:
TableView tableView = (TableView) ((AnchorPane) node).getChildren().get(0);
füllen Sie es mit Daten wie
tableView.setItems(FXCollections.observableList(vehicles));
dieser Teil ist Ok. Ich würde jedoch gerne die schriftart zu ändern die Eigenschaften des aktuell Zeile in dem tableView und ich kann nicht herausfinden, wie man es tun
Möchte ich nicht festlegen tableView.getSelectionModel().setCellSelectionEnabled(true);
wie ich will, um die Anzeige Auswahl für die ganze Zeile und nicht für eine einzelne Zelle
Versuchte ich zu gelten, einige css-Stile für Tabellenzeilen und auf Tabliew, aber ohne Erfolg.
Gibt es eine Möglichkeit die schriftart zu ändern die Eigenschaften für die aktuell ausgewählte Zeile in der TableView?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Tableview css-styling ist subtil und kompliziert.
Lösung
Gehen, um den Quellcode für die standardmäßige JavaFX-controls, css und kopieren Sie alle
.table-view
Abschnitte, die eine:selected
Pseudo-Klassen in ein eigenes Benutzer-stylesheet.Entfernen Sie die default-Attribut festlegen von Regeln von jedem css-Selektor-Abschnitt, den Sie kopiert haben und ersetzen Sie Sie mit der css, die Sie anwenden möchten, für Ihre Zeilen.
Als es von vielen
:selected
Regeln, die Sie haben könnten, um kopieren Sie die gleichen Attribut-Einstellungen in ein paar Orte (ähnlich wie die Standard-Attribut-Werte sind definiert).Hintergrund Ressourcen
Den Standard-stylesheets für die jeweiligen Versionen sind:
Konsultieren Sie die css reference guide und css-tutorials wenn Ihr verwirrt seid.
Schnelle Farbwechsel Fix
Beachten Sie, dass, wenn alles, was Sie brauchen, ist, um die Füllfarbe für die Auswahl-Leiste-text, Sie können den Standardwert überschreiben, Konstante Farbe mit Ihrem eigenen Konstanten mit einer einzigen Anweisung:
Ersetzen Sie einfach, was Farbe Sie wollen für firebrick. Ähnlich
-fx-selection-bar: midnightblue;
verwendet werden können, ändern Sie die Farbe des Hintergrunds für den text.