Хорошо, давайте сначала предположим, что ваш TableView подключен к модели:
public TableView<MyModel> myTable;
, где MyModel - это что-то вроде:
public class MyModel {
private Integer id;
private String name;
// ... etc.
}
, поэтому MyModel - это обычный POJO. У вас могут быть столбцы вашего TableView, такие как:
TableColumn<MyModel, Integer> id = new TableColumn<>("ID");
id.setCellValueFactory(new PropertyValueFactory<>("id"));
TableColumn<MyModel, String> name = new TableColumn<>("Name");
name.setCellValueFactory(new PropertyValueFactory<>("name"));
, а затем, чтобы добавить столбцы в вашу таблицу:
myTable.getColumns().addAll(id, name);
Теперь давайте послушаем событие click, используя rowFactory:
myTable.setRowFactory(tv -> {
TableRow<MyModel> row = new TableRow<>();
row.setOnMouseClicked(event -> {
// check for non-empty rows, double-click with the primary button of the mouse
if (!row.isEmpty() && event.getClickCount() == 2 && event.getButton() == MouseButton.PRIMARY) {
MyModel element = row.getItem();
// now you can do whatever you want with the myModel variable.
System.out.println(element);
}
});
return row ;
});
Это должно сделать работу.