javafx-2 - 如何在javaFX中第二次单击/选择时取消选择选定的表格行

标签 javafx-2 javafx-8

在我的 JavaFX 表上,当我单击一行时,它会选择该行。现在,当我第二次单击先前选择的同一行时,我想取消选择该特定行。是否可以 ?如果可能,请分享一些示例代码。

最佳答案

下面的一段代码适用于这个要求。

tableView.setRowFactory(new Callback<TableView<Person>, TableRow<Person>>() {  
        @Override  
        public TableRow<Person> call(TableView<Person> tableView2) {  
            final TableRow<Person> row = new TableRow<>();  
            row.addEventFilter(MouseEvent.MOUSE_PRESSED, new EventHandler<MouseEvent>() {  
                @Override  
                public void handle(MouseEvent event) {  
                    final int index = row.getIndex();  
                    if (index >= 0 && index < tableView.getItems().size() && tableView.getSelectionModel().isSelected(index)  ) {
                        tableView.getSelectionModel().clearSelection();
                        event.consume();  
                    }  
                }  
            });  
            return row;  
        }  
    });  

使用了来自 oracle 表 View 示例的相同 Person 类。原始答案由@James_D 在 oracle 的论坛中给出。

关于javafx-2 - 如何在javaFX中第二次单击/选择时取消选择选定的表格行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19490868/

相关文章:

JavaFx: slider - 带颜色的双向移动

java - 当你有 CellFactory 时,如何在更改根时完全重置 TreeView?

检测到 JavaFX 未完成的资源锁

java - 在 JavaFX 中使用 F11 键切换全屏功能

java - 更新折线图中的值

javafx - 在不知道包含节点的情况下从组中删除所有子项

java - JavaFX TextArea 中的 Tab 键导航

Javafx 在单击时添加带有 fxml 的新选项卡

javafx-2 - FX :controller ="" in . FXML

java - 在 JavaFX 中动态加载图像到 Anchorpane