【问题标题】:JavaFX parameterized editable tableviewJavaFX 参数化可编辑表格视图
【发布时间】:2014-07-04 23:37:03
【问题描述】:

我正在尝试向我的项目中添加一个可编辑的表格,I found this code 为我正在尝试做的事情提供了一个大纲。但是,它没有参数化,这似乎使它工作(我的代码不断给我类型错误)。有没有办法对此进行参数化,或者在这种情况下可以使用原始类型吗?

【问题讨论】:

  • 你的表全是字符串吗?您需要或想要自定义编辑单元格吗? TextFieldTableCell 是一个更简单的解决方案。
  • 我想使用整数和双精度,我必须做一些检查才能使用字符串

标签: java javafx


【解决方案1】:

参数化TableViewTableColumns 总是更好。

您链接的代码有点“遗留”,因为它使用原始类型并且不使用辅助单元类,例如TextFieldTableCell

TextFieldTableCell 提供了一个静态的forTableColumn(...) 方法,它接受StringConverter<T> 并返回一个Callback,它可以用作cellFactoryTableColumn<S,T>StringConverter<T> 只是提供了将输入到TextField 中的String 转换为T 以及将T 转换为String 以显示在单元格中的方法。

为数字类型提供了标准的StringConverters,例如IntegerStringConverterDoubleStringConverter

尝试以下方式:

TableView<MyDataType> table = new TableView<>();

TableColumn<MyDataType, Integer> intColumn = new TableColumn<>("Int Column");
intColumn.setCellFactory(TextFieldTableCell.forTableColumn(new IntegerStringConverter()));

TableColumn<MyDataType, Double> doubleColumn = new TableColumn<>("Double Column");
doubleColumn.setCellFactory(TextFieldTableCell.forTableColumn(new DoubleStringConverter()));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多