Javafx-2 tableview绑定没有文本单元格

时间:2012-06-08 10:18:28

标签: binding tableview javafx-2

我想在TableView中显示一系列财务事务。 每笔交易包括日期,描述和金额。

如果我使用回复另一个问题中显示的示例将所有单元格视为Text,我可以使用绑定来完成此工作。这允许进行单元格编辑,这是我的目标。

但是我不能让它在日期和数量列上工作,我想我需要为每个单元格类型单独的单元工厂,可能还有一个单独的updateItem方法,但是我被卡住了。

对示例或建议的任何指示都会有所帮助。

1 个答案:

答案 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     
        }
    });
}

}

我希望至少能给你一些指导。为清晰起见,我遗漏了异常处理。