Как получить заголовок столбца и значение строки первого столбца для ячейки в javafx - PullRequest
0 голосов
/ 29 января 2020

У меня есть таблица JavaFX, которую я создал динамически. Когда вы дважды щелкаете ячейку в табличном представлении, мне нужно получить имя столбца, в котором находится ячейка, и значение первой ячейки в строке, в которой находится эта ячейка. Я попытался выполнить поиск в Google и не нашел конкретных Решение этой проблемы. Пожалуйста, покажите мне пример кода.

1 Ответ

0 голосов
/ 29 января 2020

Хорошо, давайте сначала предположим, что ваш 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 ;
});

Это должно сделать работу.

...