我想在TableView中显示一系列财务事务。 每笔交易包括日期,描述和金额。
如果我使用回复另一个问题中显示的示例将所有单元格视为Text,我可以使用绑定来完成此工作。这允许进行单元格编辑,这是我的目标。
但是我不能让它在日期和数量列上工作,我想我需要为每个单元格类型单独的单元工厂,可能还有一个单独的updateItem方法,但是我被卡住了。
对示例或建议的任何指示都会有所帮助。
答案 0 :(得分:1)
您可能希望在以下位置查看DataFX项目: http://www.javafxdata.org/ 特别是细胞工厂,如: http://www.javafxdata.org/javadoc/org/javafxdata/control/cell/TextFieldCellFactory.html
DataFX包含多种数据类型,表,列表和树视图的自定义单元工厂。假设你的数量有一个double类型,你可以在TableColum的子类中编写类似的东西 (用表示表中一行的类的类名替换???):
setCellFactory(TextFieldCellFactory.<???, Number>forTableColumn(new Callback<String,Number>(){
@Override
public Number call(String newValueStr) {
double newValue = Double.parseDouble(newValueStr);
return newValue;
}));
setOnEditCommit(new EventHandler<CellEditEvent<???, Number>>() {
@Override
public void handle(CellEditEvent<???, Number> t) {
double newValue = t.getNewValue().doubleValue();
// do something with the double value the user entered here
}
});
}
}
我希望至少能给你一些指导。为清晰起见,我遗漏了异常处理。