将嵌套对象属性绑定到JavaFx中的TableView
发布时间:2020-12-15 00:50:30 所属栏目:Java 来源:网络整理
导读:我有下一堂课 public class ProductStockDto extends private Long id; private Long amount; private ProductDto product; private StockDto stock; //getters and setters...} 在JavaFx中我有我的表,我想将product.name属性绑定到列,就像这样. ObservableL
我有下一堂课
public class ProductStockDto extends private Long id; private Long amount; private ProductDto product; private StockDto stock; //getters and setters... } 在JavaFx中我有我的表,我想将product.name属性绑定到列,就像这样. ObservableList<ProductStockDto> data = FXCollections.observableArrayList(); data.addAll(products); nameColumn.setCellValueFactory(new PropertyValueFactory("product.name")); productTable.setItems(data); 但是当我这样做时,TableView上的行显示为空白. 有人可以帮我这个吗?我想绑定嵌套对象属性,在Java Swing上就像是${product.name} 谢谢. 解决方法
Javafx不支持这种格式,作为一种解决方法,您可以尝试这样的方法:
nameColumn.setCellValueFactory(new Callback<CellDataFeatures<ProductStockDto,String>,ObservableValue<String>>() { @Override public ObservableValue<String> call(CellDataFeatures<ProductStockDto,String> data){ return data.getValue().getProducts().nameProperty(); } }); ProductDto将拥有的地方 public class ProductDto{ private StringProperty name = new SimpleStringProperty("Itachi"); public String getName() { return name.get(); } public void setStreet(String name) { this.name.set(name); } public StringProperty nameProperty(){ return name; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |