JavaFX8 : How to create listener for selection of row in Tableview?

标签 javafx tableview javafx-8

我目前在一个屏幕上有两个表格 View ,这导致两个表格 View 都有用户可以选择的行。

现在我只想同时选择一行(从哪个 TableView 中选择无关紧要)。我正在考虑某种监听器,它在选择一行时取消选择另一行。这是我的初始设置:

第一步
搜索将方法绑定(bind)到行选择的方法(没有类似 tableview.setOnRowSelected(method) 的东西)

第二步
创建类似于一种监听器的方法:选择一行时,取消选择另一行(我知道如何做这部分)

Class1 selectedObject1 = (Class1)tableview1.getSelectionModel().getSelectedItem();
Class2 selectedObject2 = (Class2)tableview2.getSelectionModel().getSelectedItem();

if(selectedObject1 != null && selectedObject2 != null) {
   tableview1.getSelectionModel().clearSelection();
}

所以,第一步就是问题所在。我正在考虑一个可以在其上创建监听器的可观察列表,然后将所选行添加到列表中。发生这种情况时,监听器可以调用该方法。
有人知道怎么做吗?

任何帮助是极大的赞赏。

最佳答案

selectedItem在选择模型中是一个可观察的属性,因此您应该能够通过以下方式实现:

tableview1.getSelectionModel().selectedItemProperty().addListener((obs, oldSelection, newSelection) -> {
    if (newSelection != null) {
        tableview2.getSelectionModel().clearSelection();
    }
});

tableview2.getSelectionModel().selectedItemProperty().addListener((obs, oldSelection, newSelection) -> {
    if (newSelection != null) {
        tableview1.getSelectionModel().clearSelection();
    }
});

关于JavaFX8 : How to create listener for selection of row in Tableview?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26424769/

相关文章:

JavaFX: 'disabling' TableView 行和列

javafx - 将图形设置为标签

ios - 将 UISegmentedControl 的结果添加到核心数据实体中的属性

ios - Tableview 中的文本字段在 iOS 9 和 iOS10 上的行为有所不同

ios - 如何从 TableView 单元格中的按钮进入新的 View Controller

java - css 按钮图像未与 id 和样式类一起加载

java - 如何在 Javafx 8 中为标签文本添加上标

java - 过渡到 OpenJDK/OpenJFX [多模块 Maven 项目]

java - 如何在 Pane 中加载 fxml 文件?

java - Pane 形状修改