JavaFX TableView Zeilennummerierung

Mostly_Harmless

Aktives Mitglied
Hallo,

ich bin gerade dabei einer Swing-Anwendung eine neue Oberfläche mit JavaFX zu verpassen.
In der jetzigen Oberfläche gibt es eine Tabelle, in der die Zeilen fortlaufend durchnummeriert sind. Das ist in Swing ja einfach machbar:
Java:
@Override
public Object getValueAt(int row, int col) {
	if (col == 0) {
		return Integer.valueOf(row + 1);
	}
	// ...
}

Jetzt suche ich nach einer Möglichkeit die Zeilen einer TableView in JavaFX automatisch nummerieren zu können. Ich hab bereits etwas mit setRowFactory und setColumnFactory rumgespielt, konnte aber bisher keine Lösung finden.
 
Keinen Schimmer, ob es ein guter Weg ist, aber ein Weg.
Das hier:
Java:
public class RowIndexCell<S, T> extends TableCell<S, T> {

    @Override 
    protected void updateItem(T item, boolean empty) {
        super.updateItem(item, empty);
        setText(Integer.toString(getIndex() + 1));
    }
}

Mit dem hier:
Java:
		TableColumn<Object, String> column = new TableColumn<>();
		column.setCellFactory(new Callback<TableColumn<Object, String>, TableCell<Object, String>>() {
			
			@Override
			public TableCell<Object, String> call(TableColumn<Object, String> param) {
				return new RowIndexCell<>();
			}
		});
		
		TableView<Object> table = new TableView<>();
		table.getColumns().add(column);
 
Zuletzt bearbeitet von einem Moderator:
Vielen Dank, funktioniert bestens!
Und für mich ist der Weg gut genug 😉

Btw: Wo ist eigentlich der Danke-Button?
Edit: Gefunden... War im Kontrollzentrum ausgeschaltet... Kann man die Funktion nicht standardmäßig aktivieren?
 
Zuletzt bearbeitet:

Zurück
Oben