我在TableView中有两列,一列包含整数,另一列包含字符串。
colId.setCellValueFactory(new PropertyValueFactory<MyCellData, String>("id"));
colName.setCellValueFactory(new PropertyValueFactory<MyCellData, String>("name"));
MyCellData类保存行的信息
public static class MyCell extends TableCell<MyCellData, Object> {
public MyCell() {
super();
}
@Override
protected void updateItem(Object item, boolean empty) {
if (item != null) {
setText((String) item);
}
}
}
上面的MyCell类是一个基本的cellfactory。是否可以将它用于两个列,如第一段代码所示,尽管一个用于整数而另一个用于字符串?
答案 0 :(得分:0)
我找到了一个似乎很有效的解决方案。
我改变了
public static class MyCell extends TableCell<MyCellData, Object> {
到
public static class MyCell<E> extends TableCell<MyCellData, E> {
所以我可以像这样创建一个新的CellFactory
Callback<TableColumn<MyCellData, Integer>, TableCell<MyCellData, Integer>> c2 = new Callback<TableColumn<MyCellData, Integer>, TableCell<MyCellData, Integer>>() {
@Override
public TableCell<MyCellData, Integer> call(TableColumn<MyCellData, Integer> param) {
return new MyCell<Integer>();
}
};
将包含字符串的列的整数更改为字符串!