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);
假设您使用的是标准单元格类型。
我正在尝试使用 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);
假设您使用的是标准单元格类型。