0

I am trying to create table using Javafx, i need for some columns cells to be selectable but not editable,

if i used : textColumn.setEditable(true); but it will make it editable

if i used : textColumn.setEditable(false); it will be neither selectable nor editabe

how can i make column selectable but not editable ?

Here it is my code sample

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

1 回答 1

1

没有默认的复制机制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);

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

于 2018-10-30T12:58:37.187 回答