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

时间:2018-10-30 11:56:33

标签: javafx-8

我正在尝试使用Javafx创建表,我需要一些列单元格可以选择但不可编辑,

如果我使用过:json.decode(response).keys() 但它将使其可编辑

如果我使用了textColumn.setEditable(true);,它将既不可选择也不可编辑

如何使列可选但不可编辑?

这是我的代码示例

textColumn.setEditable(false);

1 个答案:

答案 0 :(得分:1)

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

示例:

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);

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