Neuen Tabelleneintrag anlegen

Wenn man mit JavaFX Tabellen darstellt, möchte man natürlich auch Daten in die Tabelle einfügen. Bei den Standardfunktionen bleibt offen, wie der neue Datensatz selektiert wird.

Fügt man einen neuen und meist leeren Datensatz in eine Tabelle ein, wird dieser standardmäßig nicht selektiert. Da in der Regel mehrere Zeilen in der Tabelle leer sind, ist der neue Datensatz von den alten nicht zu unterscheiden. Deshalb ist es notwendig, dass er selektiert wird, um ihn hervorzuheben.

Im folgenden Code wird ein solches Hinzufügen exemplarisch dargestellt:

@FXML
public void addPerson( ) {
	PersonData newPerson = new PersonData( );
	personTable.getItems( ).add( newPerson );
	final int indexOfNewPerson = personTable.getItems( ).size( ) - 1;
	personTable.getSelectionModel( ).select( indexOfNewPerson );
	personTable.scrollTo( indexOfNewPerson );
}

Zuerst wird ein neuer Datensatz angelegt und den Items der Tabelle hinzugefügt. Egal wie die TableView sortiert ist, wird der Datensatz als letzte Zeile angefügt. Diese kann über den Index identifizert und dann selektiert werden.

Einziges Problem ist, dass die Zeile möglicherweise nicht direkt angezeigt wird. Deshalb ist die Anweisung scrollTo notwendig, um die gerade erzeugte Zeile anzuzeigen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.