JavaFX 2で、エディションの列の一部のセルを無効にします。の線に沿った何か
TableModel.isCellEditable(row, col)
スイングで。セルが編集可能かどうかを判断するには、行の項目が必要です。セルの値が十分ではありません。
私がなんとか書いたコードは次のとおりです。
TableView<FilterItem> localTableView = new TableView<FilterItem>() {
public void edit(int paramInt, TableColumn<FilterItem, ?> paramTableColumn) {
if (paramInt >= 0) {
FilterItem item = getItems().get(paramInt); //get item in the row
if (!item.isPropagated()) { //condition
return;
}
}
super.edit(paramInt, paramTableColumn);
}
};
問題は、特定のアイテムが編集に対して無効になっているという視覚的な手がかりがないことです。
セルファクトリの設定は私が試した最初のことでしたが、セルの更新メソッドで行データにアクセスできません。
localValueCol.setCellFactory(
new Callback<TableColumn<FilterItem, String>, TableCell<FilterItem, String>>() {
@Override
public TableCell<FilterItem, String> call(TableColumn<FilterItem, String> paramTableColumn) {
return new TextFieldTableCell<FilterItem, String>() {
@Override
public void updateItem(String s, boolean b) {
super.updateItem(s, b);
// it is possible set editable property here,
// but other cells are not available to make a decision
}
};
}
});