javafx tableview how to get the row I clicked?

hanbin615

here is my code

// this event is attached to TableCell
public EventHandler dblclickDescription = new EventHandler<MouseEvent>(){
    @Override
    public void handle(MouseEvent event) {
        if(event.getButton().equals(MouseButton.PRIMARY)){
            if(event.getClickCount() == 2){
                printRow(event.getTarget());
            }
        }
        event.consume();
    }
};

// print row
public void printRow(Object o){
    Text text = (Text) o;

    // ??? don't know what to write here

   System.out.println(row.toString());
}

1) how do I get from the cell I clicked to the row?

2) can I attach the event to the whole row instead of each column?

EDIT: 3) I thought that I attached the event on TableCell

TableCell cell = TableColumn.DEFAULT_CELL_FACTORY.call(p);
cell.setOnMouseClicked(dblclickDescription);

but when I tested,

event.getSource();// is a TableColumn
event.getTarget();// is a Text if clicked on text
event.getTarget();// is a TableColumn if clicked on empty space, even if that cell has text

is there a way to get TableCell from MouseEvent?

James_D

To answer your specific questions:

how do I get from the cell I clicked to the row?

TableCell defines a getTableRow() method, returning the TableRow. So you can do

Object item = cell.getTableRow().getItem();

which will give you the row item from the table (i.e. the correct element of table.getItems()). You can also get this from table.getItems().get(cell.getIndex()) if you prefer.

can I attach the event to the whole row instead of each column?

Yes. Define a rowFactory:

TableView<MyDataType> table = new TableView<>();

table.setRowFactory(tv -> {
    TableRow<MyDataType> row = new TableRow<>();
    row.setOnMouseClicked(event -> {
        if (! row.isEmpty() && event.getButton()==MouseButton.PRIMARY 
             && event.getClickCount() == 2) {

            MyDataType clickedRow = row.getItem();
            printRow(clickedRow);
        }
    });
    return row ;
});

// ...

private void printRow(MyDataType item) {
    // ...
}

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

JavaFX-8 - How to get the row count of a TableView?

From Dev

JavaFX How to get data of selected row from Tableview

From Dev

How do I make something happen on hover of a row in a JavaFX TableView?

From Dev

JavaFX: How to disable a row in a TableView?

From Dev

How to delete a JavaFx TableView Row

From Dev

JavaFX ContextMenu how do I get the clicked Object?

From Dev

How to get current row of QTableWidget if I clicked on its child?

From Dev

How to get current row of QTableWidget if I clicked on its child?

From Dev

How can I get the UIButton state to be different for each tableView row?

From Dev

How to listen to deselection of row in JavaFX tableview?

From Dev

How to prevent of selecting another row in TableView in JavaFX

From Dev

How to update TableView Row using javaFx

From Dev

how to create an empty row in a tableview in javafx

From Dev

How to prevent of selecting another row in TableView in JavaFX

From Dev

How change color selected row in tableView javafx

From Dev

How can I determine the X & Y coordinates of a row in a TableView in JavaFX 8

From Dev

How to distinguish selected row from current row in TableView in JavaFX?

From Dev

How to get TableHeaderRow from TableView nowadays in JavaFX?

From Dev

JavaFX TableView how to get cell's data?

From Dev

How to get selected TableCell in JavaFX TableView

From Dev

Javafx how can I insert data to tableview

From Dev

How to get clicked row number in table in Vaadin?

From Dev

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

From Dev

javafx - How to set selected row text color in not focused TableView

From Dev

How to delete selected row from TableView? (JavaFX with FXML)

From Dev

JavaFX - How to change TableView color of selected unfocused row?

From Dev

How to know the row of a dynamic created button of a tableview on javafx

From Dev

JavaFX TableView seperate bean adapter for each row. How?

From Dev

How to set bold true for some row in TableView JavaFX

Related Related

  1. 1

    JavaFX-8 - How to get the row count of a TableView?

  2. 2

    JavaFX How to get data of selected row from Tableview

  3. 3

    How do I make something happen on hover of a row in a JavaFX TableView?

  4. 4

    JavaFX: How to disable a row in a TableView?

  5. 5

    How to delete a JavaFx TableView Row

  6. 6

    JavaFX ContextMenu how do I get the clicked Object?

  7. 7

    How to get current row of QTableWidget if I clicked on its child?

  8. 8

    How to get current row of QTableWidget if I clicked on its child?

  9. 9

    How can I get the UIButton state to be different for each tableView row?

  10. 10

    How to listen to deselection of row in JavaFX tableview?

  11. 11

    How to prevent of selecting another row in TableView in JavaFX

  12. 12

    How to update TableView Row using javaFx

  13. 13

    how to create an empty row in a tableview in javafx

  14. 14

    How to prevent of selecting another row in TableView in JavaFX

  15. 15

    How change color selected row in tableView javafx

  16. 16

    How can I determine the X & Y coordinates of a row in a TableView in JavaFX 8

  17. 17

    How to distinguish selected row from current row in TableView in JavaFX?

  18. 18

    How to get TableHeaderRow from TableView nowadays in JavaFX?

  19. 19

    JavaFX TableView how to get cell's data?

  20. 20

    How to get selected TableCell in JavaFX TableView

  21. 21

    Javafx how can I insert data to tableview

  22. 22

    How to get clicked row number in table in Vaadin?

  23. 23

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

  24. 24

    javafx - How to set selected row text color in not focused TableView

  25. 25

    How to delete selected row from TableView? (JavaFX with FXML)

  26. 26

    JavaFX - How to change TableView color of selected unfocused row?

  27. 27

    How to know the row of a dynamic created button of a tableview on javafx

  28. 28

    JavaFX TableView seperate bean adapter for each row. How?

  29. 29

    How to set bold true for some row in TableView JavaFX

HotTag

Archive