Detect doubleclick on row of TableView JavaFX

后端 未结 6 461
耶瑟儿~
耶瑟儿~ 2020-11-29 21:51

I need to detect double clicks on a row of a TableView.

How can I listen for double clicks on any part of the row and get all data of this row to print

6条回答
  •  一个人的身影
    2020-11-29 22:57

    Example:

    table.setOnMousePressed(new EventHandler() {
        @Override 
        public void handle(MouseEvent event) {
            if (event.isPrimaryButtonDown() && event.getClickCount() == 2) {
                System.out.println(table.getSelectionModel().getSelectedItem());                   
            }
        }
    });

    If you are using custom selection model, then you can get the row from event, example:

    table.setOnMousePressed(new EventHandler() {
        @Override 
        public void handle(MouseEvent event) {
            if (event.isPrimaryButtonDown() && event.getClickCount() == 2) {
                Node node = ((Node) event.getTarget()).getParent();
                TableRow row;
                if (node instanceof TableRow) {
                    row = (TableRow) node;
                } else {
                    // clicking on text part
                    row = (TableRow) node.getParent();
                }
                System.out.println(row.getItem());
            }
        }
    });

提交回复
热议问题