javafx - 单击 javafx 中的空行时清除 TableView 中的选择

标签 javafx tableview

我有一个 TableView有一些行。用户可以选择任何行,但当他单击空行或 Stage 上的任何位置时,我要清除他当前选择的TableView .

最佳答案

您可以将事件过滤器添加到 Scene使用 TableView 的选择模型清除选择,如果点击是在空行或 TableView 之外的任何地方:

scene.addEventFilter(MouseEvent.MOUSE_CLICKED, evt -> {
    Node source = evt.getPickResult().getIntersectedNode();

    // move up through the node hierarchy until a TableRow or scene root is found 
    while (source != null && !(source instanceof TableRow)) {
        source = source.getParent();
    }


    // clear selection on click anywhere but on a filled row
    if (source == null || (source instanceof TableRow && ((TableRow) source).isEmpty())) {
        tableView.getSelectionModel().clearSelection();
    }
});

关于javafx - 单击 javafx 中的空行时清除 TableView 中的选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41907705/

相关文章:

javafx - 如何确定JavaFX应用程序所需的FXML文件,CSS文件,图像和其他资源的正确路径?

JavaFX 任务可调用

JavaFX 9/10 不再可能覆盖 TableView.resizeColumnToFitContent

Swift 动态原型(prototype)行高

iphone - 如何在 UITableView Controller 中调整 TableView 的大小?

java - 节点移动 - JavaFX

java - 调色板算法输出从红色到蓝色的颜色网格

java - 是否可以将 SWT 组合嵌入到 JavaFX 场景中?

swift - 如何向自定义 UITableViewCell 添加约束

iOS/objective-C : Swipe to Left causing crash in tableview created with code