Javafx 如何使用 Javafx 使 TableColumn 单元格可选择但不可编辑

Javafx How to make TableColumn cells selectable but not editable using Javafx

我正在尝试使用 Javafx 创建 table,我需要选择一些列单元格 table 而不是 editable,

如果我使用:textColumn.setEditable(true); 但它会使它成为 editable

如果我使用 : textColumn.setEditable(false); 它既不是 selectable 也不是 editabe

如何选择列 selectable 而不是 editable ?

这是我的代码示例

    TableColumn<Tuple, String> textColumn= new TableColumn<>();
    textColumn.setText(column.getName());
    textColumn.setMinWidth(column.getWidth());
    textColumn.setEditable(true);

TableView 没有默认的复制机制(列可能包含任意值类型,在复制到剪贴板时可能需要进行自定义处理)。如果需要,您应该自己实现复制机制。

示例:

tableView.setOnKeyReleased(evt -> {
    if (evt.isControlDown() && evt.getCode() == KeyCode.C) {
        List<TablePosition> selectedCells = table.getSelectionModel().getSelectedCells();
        if (!selectedCells.isEmpty()) {
            TablePosition selectedCell = selectedCells.get(0);
            if (selectedCell.getTableColumn() == textColumn) {
                String value = textColumn.getCellData(selectedCell.getRow());
                Clipboard clipboard = Clipboard.getSystemClipboard();
                ClipboardContent content = new ClipboardContent();
                content.putString(value);
                clipboard.setContent(content);
            }
        }
    }
});

除此之外还需要做

tableView.getSelectionModel().setCellSelectionEnabled(true);

假设您使用的是标准单元格类型。