我的 JavaFX 应用程序应如下所示:
现在,我想确保在我从表格视图中选择另一个人时,详细信息视图会立即适应。
到目前为止我的课程:
public class Person {
private final StringProperty name = new SimpleStringProperty();
private final StringProperty title = new SimpleStringProperty();
private final IntegerProperty age = new SimpleIntegerProperty();
public Person(String name, String title, int age) {
setName(name);
setTitle(title);
setAge(age);
}
// Getters and Setters
}
public class PresentationModel {
private final ObservableList<Person> persons = FXCollections.observableArrayList();
private final ObjectProperty<Person> selectedPerson = new SimpleObjectProperty<>();
public PresentationModel() {
// add some users to persons list
}
// Getters/Setters
}
在带有表的 UI 类中,我设置了这样的侦听器:
personsTable.getSelectionModel().selectedItemProperty().addListener((observable, oldPerson, newPerson) -> {
model.setSelectedPerson(newPerson);
});
在带有详细信息视图的 UI 类中,我设置了一个绑定:
nameLabel.textProperty().bind(model.getSelectedPerson().nameProperty());
该PresentationModel model
属性在应用程序启动时创建一次,然后通过构造函数传递给所有 UI 类。
但是这个绑定没有按预期工作。我可以更改什么以使绑定正常工作并且属性更改?