我正在尝试在我的项目中使用Hibernate。我有绑定到DB表的类。该表中很少有列与其他表有关系(因为主类中有大量数据)。一切正常。但我不知道如何将其正确绑定到TableView。
@FXML TableView<ClassExample> ExampleTableView;
@FXML TableColumn<ClassExample, Integer> tableViewColumnID;
@FXML TableColumn<ClassExample2, String> tableViewColumnString;
tableViewColumnID.setCellValueFactory(new PropertyValueFactory<ClassExample,Integer>("idZap"));
tableViewColumnString.setCellValueFactory(new PropertyValueFactory<ClassExample2, String>("INFO"));
对于第一列,一切正常。但是如何绑定ClassExample2.getINFO(Column&#34; INFO&#34;),这是ClassExample的一部分?
我试过这个并且它有效 - 但是我可以用lambda做吗?:
tableViewColumnString.setCellValueFactory(cellData -> new ReadOnlyStringWrapper(cellData.getValue().getClassExample2().getINFO()));
答案 0 :(得分:1)
您无法使用PropertyValueFactory
访问属性&#34;的属性,因此您必须以某种方式提供自己的Callback<CellDataFeatures<ClassExample>, ObservableValue<String>>
实现。没有要求使用lambda表达式,但它比同等的匿名内部类更简洁:
tableViewColumnString.setCellValueFactory(new Callback<CellDataFeatures<ClassExample>, ObservableValue<String>>() {
@Override
public ObservableValue<String> call(CellDataFeatures<ClassExample> cellData) {
return new ReadOnlyStringWrapper(cellData.getValue().getClassExample2().getINFO());
};
});