将bean适配器对象绑定到TableView时遇到问题,该对象使用该适配器属性创建组合框。JavaFX TableView为每一行分开的bean适配器。怎么样?
lanSpecie.setCellFactory(new Callback<TableColumn<HAUL,Specie>, TableCell<HAUL,Specie>>() {
@Override
public TableCell<HAUL, Specie> call(TableColumn<HAUL, Specie> param) {
TableCell<HAUL, Specie> cell = new TableCell<>();
ComboBox<Specie> comboBox = new ComboBox<>(FXCollections.observableList(specieService.findAllAdded()));
try {
comboBox.valueProperty().bindBidirectional(new JavaBeanObjectPropertyBuilder<Object>().bean(haulBean).name("specie").build());
} catch (NoSuchMethodException e) {
e.printStackTrace();
}
cell.graphicProperty().bind(Bindings.when(cell.emptyProperty()).then((Node) null).otherwise(comboBox));
return cell;
}
});
我的3行表中加入:
每当改变一个元件,它自动地改变所有3.
寻找溶液或引导在正确的方向,所以该表查找每个行元素作为新的HAUL对象,从而为每行创建新的适配器实例。
什么是该代码中的“haulBean”?它看起来像是将所有组合框的值绑定到一个属性。你不能在这里使用标准的['ComboBoxTableCell'](http://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/cell/ComboBoxTableCell.html)吗? –
haulBean是我的实体对象(在这种情况下为POJO)。 您可以将javabean适配器字段绑定到ComboBoxTableCell吗? – Kefirchiks
但是哪个实体对象?每行有一个。这没有什么意义。您应该使用单元格*值*工厂映射到Java Bean适配器,然后使用单元工厂指定表格单元格。我没有看到任何不适用于ComboBoxTableCell的原因。 –