Javafx 2 自定义cellfactory的可编辑单元格
我已经为Integer创建了一个自定义cellfactory。我可以看到tablecell已填充,但问题是我无法使单元格进入编辑模式 这是我的手机工厂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
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属性吗?