ich folgende Klasse haben:Bindung zwei Klasseneigenschaften mit Tableview Spalte in JavaFX
public class Person {
private final StringProperty firstName;
private final StringProperty lastName;
public String getFirstName() {
return firstName.get();
}
public void setFirstName(String firstName) {
this.firstName.set(firstName);
}
public StringProperty firstNameProperty() {
return firstName;
}
public String getLastName() {
return lastName.get();
}
public void setLastName(String lastName) {
this.lastName.set(lastName);
}
public StringProperty lastNameProperty() {
return lastName;
}
public StringProperty getName() {
return new SimpleStringProperty(firstName.get() + " " + lastName.get());
}
}
Dann habe ich eine Tableview, wo ich beide Namen in einer Spalte angezeigt werden:
@FXML
private TableView<Person> personTable;
@FXML
private TableColumn<Person, String> name;
@FXML
private void initialize() {
name.setCellValueFactory(cellData -> cellData.getValue().getName());
personTable.getSelectionModel().selectedItemProperty().addListener(
(observable, oldVal, newVal) -> showDetails(newVal));
}
Und jetzt kann ich Änderungen an meinem Person-Objekt vornehmen, diese werden jedoch nicht in der TableView-Spalte angezeigt. Wenn ich das Bearbeitungsfenster wieder öffne, sehe ich neue Werte, aber in meinem TableView sehe ich alte. Was kann ich tun?
Es funktioniert wunderbar. Vielen Dank. – blaballong