我的表格视图:
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);
}
});
这很麻烦,但很有效。
我的问题是:
答案 0 :(得分:2)
第一点,我认为你不能。
对于第二点,我认为你也不能。反正不是直接的。
我认为最好的解决方案是使用JavaBeanStringProperty来包装firstname
属性,并在每次要更新单元格时调用fireValueChangedEvent()
。