Ich muss die letzte Zeile in einer Tabellenansicht in JavaFX durch die CSS formatieren, wenn es in CSS nicht möglich ist, dann wie kann das im Code tun.Formatierung der letzten Zeile in der Tabellenansicht in JavaFx
0
A
Antwort
2
Sie können dies tun:
TableView<Item> table = new TableView<>();
// ...
PseudoClass lastRow = PseudoClass.getPseudoClass("last-row");
table.setRowFactory(tv -> new TableRow<Item>() {
@Override
public void updateIndex(int index) {
super.updateIndex(index);
pseudoClassStateChanged(lastRow,
index >= 0 && index == table.getItems().size() - 1);
}
});
(offensichtlich ersetzen Item
mit Ihrer tatsächlichen Modellklasse) und jetzt in einer externen CSS-Datei:
.table-row-cell:last-row {
/* styles for last row here... */
}
.table-row-cell:last-row .table-cell {
/* styles for cells in last row here, if needed */
}
SSCCE:
import java.util.Random;
import java.util.function.Function;
import javafx.application.Application;
import javafx.beans.property.IntegerProperty;
import javafx.beans.property.Property;
import javafx.beans.property.SimpleIntegerProperty;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.StringProperty;
import javafx.css.PseudoClass;
import javafx.scene.Scene;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableRow;
import javafx.scene.control.TableView;
import javafx.stage.Stage;
public class TableViewStyleLastRow extends Application {
@Override
public void start(Stage primaryStage) {
TableView<Item> table = new TableView<>();
table.getColumns().add(column("Item", Item::nameProperty));
table.getColumns().add(column("Value", Item::valueProperty));
PseudoClass lastRow = PseudoClass.getPseudoClass("last-row");
table.setRowFactory(tv -> new TableRow<Item>(){
@Override
public void updateIndex(int index) {
super.updateIndex(index);
pseudoClassStateChanged(lastRow, index >=0 && index == table.getItems().size() - 1);
}
});
Random rng = new Random();
for (int i = 1 ; i <= 25 ; i++) {
table.getItems().add(new Item("Item "+i, rng.nextInt(200)));
}
Scene scene = new Scene(table);
scene.getStylesheets().add("style-last-row.css");
primaryStage.setScene(scene);
primaryStage.show();
}
private static <S,T> TableColumn<S,T> column(String title, Function<S, Property<T>> prop) {
TableColumn<S, T> col = new TableColumn<>(title);
col.setCellValueFactory(cellData -> prop.apply(cellData.getValue()));
return col ;
}
public static class Item {
private final StringProperty name = new SimpleStringProperty();
private final IntegerProperty value = new SimpleIntegerProperty();
public Item(String name, int value) {
setName(name);
setValue(value);
}
public final StringProperty nameProperty() {
return this.name;
}
public final java.lang.String getName() {
return this.nameProperty().get();
}
public final void setName(final java.lang.String name) {
this.nameProperty().set(name);
}
public final IntegerProperty valueProperty() {
return this.value;
}
public final int getValue() {
return this.valueProperty().get();
}
public final void setValue(final int value) {
this.valueProperty().set(value);
}
}
public static void main(String[] args) {
launch(args);
}
}
mit style-last-row.css:
.table-row-cell:last-row {
-fx-background: #707070 ;
}
+0
Vielen Dank @James_D, Great Answer. – ManKeer
Verwandte Themen
- 1. JavaFX Update Fortschrittsbalken in der Tabellenansicht von Task
- 2. JavaFX: Dynamische Zellensteuerung beim Klicken in der Tabellenansicht?
- 3. Wie man Knopf in der JavaFX-Tabellenansicht hinzufügt
- 4. Beibehalten der letzten Zeile von UITableView
- 5. numpy.savetxt() Stop Newline in der letzten Zeile
- 6. Füllen Sie eine Tabellenansicht mit Hilfe der Datenbank in JavaFX
- 7. Zeile in Tabellenansicht einfügen
- 8. Bedingte Formatierung durch Vergleichen jeder Zelle in der zweiten Spalte mit der entsprechenden Zelle in der letzten Zeile
- 9. UITableView indexPfad der letzten Zeile
- 10. Wie wird die Hintergrundfarbe der ausgewählten Zeile in der Tabellenansicht festgelegt, die untergeordnete Tabellenansicht ist?
- 11. Mehrere Spalten in der Tabellenansicht
- 12. CheckBox in der Tabellenansicht
- 13. sed + String nur in der letzten Zeile der
- 14. LaTeX: Nummerierung nur der letzten Zeile der Mehrliniengleichung in \ align
- 15. Löschen einer Zeile aus der Tabellenansicht
- 16. Probleme mit Tabellenansicht und Tabellenspalten in JavaFX
- 17. wie Wert der ausgewählten Zeile in DropDown und Tabellenansicht erhalten
- 18. Bild nur für sichtbare Zeile in der Tabellenansicht konfigurieren
- 19. Bis zum Ende der Zeile Zeichen in Vi, hinter dem letzten Zeichen in der Zeile
- 20. javafx tableview automatisches Scrollen bis zur letzten
- 21. Kontrollkästchen Schaltfläche in der Tabellenansicht in iPhone
- 22. Event Handler, wenn eine Zeile aus der Tabellenansicht gelöscht wird
- 23. Bedingte Formatierung in der gesamten Zeile für die Gruppierung
- 24. JavaFX-Tabellenzellen-Formatierung
- 25. JavaFX Tabellenansicht mehrere Auswahl überspringt manchmal einen der Artikel
- 26. Javafx-Tabellenansicht Werte aus der gefilterten Liste abrufen
- 27. Löschen der ersten Zeile eines JavaFx-Textbereiches
- 28. javafx Tabellenansicht zeigt keine Daten aus der Datenbank
- 29. iOS - Suche in der Tabellenansicht
- 30. Schaltfläche in der Tabellenansicht Zelle
gibt es die: Last-Kind-Selektor – Goombah
@Goombah sind Sie sicher, ist es javafx css property ???? – ManKeer
Nein, mein Schlechter. Es ist nicht. Was ist mit einem Klassennamen für die letzte Zeile? – Goombah