Combobox tableView onEditCommit中的Java FX组合框不';行不通
您好,我们尝试在tableView中为组合框使用eventhandler。 但由于某些原因,eventhandler无法启动。经过长时间的搜索,我们仍然没有找到答案,所以我们非常绝望。 这是我们的代码:Combobox tableView onEditCommit中的Java FX组合框不';行不通,combobox,event-handling,javafx,tablecolumn,Combobox,Event Handling,Javafx,Tablecolumn,您好,我们尝试在tableView中为组合框使用eventhandler。 但由于某些原因,eventhandler无法启动。经过长时间的搜索,我们仍然没有找到答案,所以我们非常绝望。 这是我们的代码: //ComboBoxes in Tableview @FXML private TableColumn<Presentatie, Dag> dagC; dagC.setCellValueFactory(new PropertyValueFactory<Pr
//ComboBoxes in Tableview
@FXML
private TableColumn<Presentatie, Dag> dagC;
dagC.setCellValueFactory(new PropertyValueFactory<Presentatie, Dag>("dag"));
dagC.setEditable(true);
dagC.setCellFactory(ComboBoxTableCell.<Presentatie, Dag>forTableColumn(dataD));
EventHandler<TableColumn.CellEditEvent<Presentatie, Dag>> nameEditHandler = new EventHandler<TableColumn.CellEditEvent<Presentatie, Dag>>() {
@Override
public void handle(TableColumn.CellEditEvent<Presentatie, Dag> e) {
Presentatie p = e.getRowValue();
Dag newValue = e.getNewValue();
p.setDag(newValue);
System.out.println("PLEASE");
}
};
dagC.setOnEditCommit(nameEditHandler);
//Tableview中的组合框
@FXML
私有表列dagC;
dagC.setCellValueFactory(新属性价值工厂(“dag”);
dagC.setEditable(真);
dagC.setCellFactory(ComboBoxTableCell.forTableColumn(dataD));
EventHandler nameEditHandler=新的EventHandler(){
@凌驾
公共无效句柄(TableColumn.celledite){
表示p=e.getRowValue();
Dag newValue=e.getNewValue();
p、 setDag(新值);
系统输出打印号(“请”);
}
};
setOnEditCommit(nameEditHandler);
我们的数据是FXCollections.observableArrayList
我们正在使用场景生成器,这可能是问题所在吗?我们在某个地方读到场景生成器不更新事件处理程序。如果是这样的话,我们需要做些什么才能使代码正常工作?
请帮助我们,我们将不胜感激。场景生成器不是问题所在。由于某些原因,显示值为
null
的字符串会导致问题。解决方案是将null
值替换为空的“
字符串。看起来不错。组合框是否按预期显示?请注意,如果您的presentation
类有一个public ObjectProperty dagProperty(){…}
方法,那么您的onEditCommit
处理程序是多余的:PropertyValueFactory
将负责从单元格项到属性的绑定。