Определить, нажал ли пользователь на пустые строки в табличном представлении

У меня есть табличное представление, в котором есть несколько строк. Я могу получить выбранный индекс, который выбрал пользователь. Я хочу очистить выбор, когда пользователь нажимает на пустые строки. Как я могу определить, нажал ли пользователь на пустые строки или нет?

Я пробовал ниже вещей.

cSVTableView.addEventHandler(MouseEvent.MOUSE_CLICKED, new   EventHandler<MouseEvent>() {  
        public void handle(MouseEvent e) {    
            //int selectedIndex =     cSVTableView.getSelectionModel().selectedIndexProperty().get();  
            if (e.getButton() == MouseButton.SECONDARY && selectedIndex !=   -1 && selectedIndex <= modelList.size() - 1) {  
                contextMenu.show(cSVTableView, e.getScreenX(),   e.getScreenY());  
            } else if(e.getButton() == MouseButton.PRIMARY &&   selectedIndex==-1){  
                cSVTableView.getSelectionModel().clearSelection();  
                contextMenu.hide();  
            } else {  
                contextMenu.hide();  
            }  
        }  
    });  

Я пробовал это, но это не работает

    tableView.setRowFactory(new Callback<TableView<MainModel>, TableRow<MainModel>>() {

        public TableRow<MainModel> call(TableView<MainModel> param) {
            final TableRow<MainModel> row = new TableRow<MainModel>();
            row.addEventHandler(MouseEvent.MOUSE_CLICKED, new EventHandler<Event>() {

                public void handle(Event event) {
                    if((! row.isEmpty()) && ( ((MouseEvent) event).getButton()==MouseButton.PRIMARY)){
                        MainModel clickedRow = row.getItem();
                        System.out.println("clickedRow::" +clickedRow);
                    }

                }
            });
            return row;
        }
});

0 ответов

Другие вопросы по тегам