將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的原因。 –