如何確定javafx tablecell引用的數據類型(String,Integer,Double等)。例如。我有如下分配給場中一個JavaFX控制器中的自定義單元格工廠:JavaFx - 獲取TableCell數據類型
CustomCellFactory<Damageloop, Date> damageLoopWorkshopDueDateFactory = new CustomCellFactory ("colDamageLoopWorkshopDueDate", false);
這就需要下面的類...
public class CustomCellFactory<S, T> implements Callback<TableColumn<S, T>, TableCell<S, T>> {
String colname;
boolean editable;
public CustomCellFactory (String colname, boolean editable) {
this.colname = colname;
this.editable = editable;
}
@Override
public TableCell<S, T> call(TableColumn<S, T> arg) {
TableCell<S, T> cell;
if (editable == true) {
cell = new TableCellEditable<>(colname);
} else {
cell = new TableCellCustom<>(colname);
}
return cell;
}
}
依次調用下面的類.. 。
public class TableCellCustom <S, T> extends TableCell<S, T> {
String colname;
public TableCellCustom (String colname) {
this.colname = colname;
}
@Override
protected void updateItem(T item, boolean empty) {
super.updateItem(item, empty);
if (empty || item == null) {
setText(null);
setGraphic(null);
} else {
setConditionalFormatting(this,item);
}
}
public void setConditionalFormatting (TableCell<S,T> cell, T item) {
//perform specific cell formatting....
}
}
,並想以確定在水平TableCellCustom的小區的數據類型(即,在創建CustomCellFactory時通過,在這種情況下的日期初始參數),以便SP基於此可以執行特殊操作。我曾嘗試...
super.itemProperty().getName()
這如下返回相關的小區信息一大堆:
ObjectProperty [bean: EditableTableCell[id=colDamageLoopWorkshopDueDate, styleClass=cell indexed-cell table-cell table-column]'17/01/2016', name: item, value: 2016-01-17]
但對細胞的數據類型沒有提及。
你能不能給一點在這裏更多的環境?本書的答案是數據類型是'T',但我猜這不是你的意思...... –
@James_D更新提供更多的上下文。而且我絕對不會在T之後! – Josh