Javafx 2 自定义cellfactory的可编辑单元格

Javafx 2 自定义cellfactory的可编辑单元格,javafx-2,tablecell,Javafx 2,Tablecell,我已经为Integer创建了一个自定义cellfactory。我可以看到tablecell已填充,但问题是我无法使单元格进入编辑模式 这是我的手机工厂 public class TableCellInteger extends TableCell { public TableCellInteger() { } @Override protected void updateItem(Object item, boolean empty) { super.updateItem(it

我已经为Integer创建了一个自定义cellfactory。我可以看到tablecell已填充,但问题是我无法使单元格进入编辑模式

这是我的手机工厂

public class TableCellInteger extends TableCell {

public TableCellInteger() {    }

@Override
protected void updateItem(Object item, boolean empty) {
    super.updateItem(item, empty);

    if (item != null) {
        setText(item.toString());
        setGraphic(null);
        setStyle("-fx-alignment: CENTER;");
    }
}
}

以下是控制器部分:

col_VAL.setCellValueFactory(new PropertyValueFactory<Price, Integer>("val"));

Callback<TableColumn<Price, Integer>, TableCell<Price, Integer>> integerCellFactory =
            new Callback<TableColumn<Price, Integer>, TableCell<Price, Integer>>() {
                @Override
                public TableCell call(TableColumn p) {
                    return new TableCellInteger();
                }
            };


col_VAL.setCellFactory(integerCellFactory);

您知道如何实现此功能吗?

您是否尝试过仅使用TextFieldTableCell?如果我将“val”设为StringProperty,TextFieldTableCell将正常工作。我还有一大堆其他的列,比如date¤cy,我必须使用定制的cellfactory,所以我先试用Integer。我的实现中缺少任何内容吗?您的实现缺少任何可编辑的组件,例如TextField。如果需要,您可以将TextFieldTableCell与非字符串列一起使用。如果您确实需要使用自己的单元格工厂,示例12-11中有一个示例:单元格编辑的替代解决方案。不过我认为这太过分了,带有适当StringConverter的TextFieldTableCell应该足够了。我以精确的方式更改了DateTime字段,并将单元格设置为可编辑。唯一的区别是my val是IntegerProperty,date字段是simple DateTime。这不适用于bean属性吗?