我正在尝试为我的项目添加一个可编辑的表格,I found this code概述了我正在尝试做的事情。但是,它没有参数化,这似乎使它工作(我的代码不断给我类型错误)。有没有办法参数化这个或在这种情况下是原始类型好吗?
答案 0 :(得分:1)
最好参数化TableView
和TableColumn
。
您链接的代码有些“遗留”,因为它使用原始类型而不使用辅助单元类,例如TextFieldTableCell
。
TextFieldTableCell
提供静态forTableColumn(...)
方法,该方法需要StringConverter<T>
并返回Callback
,cellFactory
可用作TableColumn<S,T>
StringConverter<T>
}。 String
只提供了将输入TextField
的{{1}}转换为T
,以及将T
转换为String
的方法显示在单元格中。
为数字类型提供了标准StringConverter
,例如IntegerStringConverter
和DoubleStringConverter
。
尝试以下方面的内容:
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()));