我的表格视图:
TableView<Person> = new TableView<Person>();
但人是这样的:
class Person {
String firstName;
public getFirstName() {return firstName;}
}
那就是它没有新的 javafx 样式属性。它是一个现有的类,由我使用的库实例化。
我使用以下代码创建列:
TableColumn columnFirstName = new TableColumn("First Name");
columnCodfis.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<Person, String>,ObservableValue<String>>(){
@Override
public ObservableValue<String> call(CellDataFeatures<Person, String> arg) {
if (arg.getValue()==null) return null;
return new ReadOnlyStringWrapper(arg.getValue().firstName);
}
});
这很麻烦,但很有效。
我的问题是:
- 返回 ObservableValue 是没有意义的,因为 bean 无法触发更改事件。因此,我想避免所有 ObservableValue 开销,该怎么做?
- 因为 javabean 不会自己触发事件,所以我需要一些老式的 resfresh 事件,比如 fireCellUpdate。是这样的方法吗?