我有一個TextFieldTableCell<Item,String>
,我需要驗證,所以不能使用在通用回調沒有推理的JavaFX
column.setCellFactory(TextFieldTableCell.forTableColumn());
通常的方式,使我的意圖是要像做
column.setCellFactory(param -> {
TableCell<Item,String> cell = TextFieldTableCell.forTableColumn().call(params);
validate(validationRules, cell);
});
但是它說,
CallbackTableColumn<Object,String>,TableCell<Object,String> cannot be
applied to TableColumn<Item,String>
我得到的,我不明白的是應該把它推斷出類型,而不是Object
我發現的唯一解決方法是定義一個新的StringConverter<String>
,這似乎有點令人厭惡。
new StringConverter<String>() {
@Override
public String toString(String object) {
return object;
}
@Override
public String fromString(String string) {
return string;
}
}
我覺得你還是可以使用TextFieldTableCell.forTableColumn()。在你的setOnEditCommit中,你應該能夠驗證你的數據。 – Sedrick
沒錯,但驗證應該在開始之前開始編輯 –
爲什麼不使用TableCell- cell = new TextFieldTableCell <>();'雖然? –