Я пытаюсь сделать запись времени для задач.Задачи отображаются в JavaFX TableView.Я сделал TableView редактируемым, чтобы пользователь мог просто дважды щелкнуть одну ячейку и изменить значения.Так что теперь я пытаюсь настроить выбор после нажатия Enter.Например, если вы закончили с именем задачи, я хочу выбрать одну и ту же ячейку.Вот с чем я борюсь.
Я пытался получить ячейку через SelectionModel.Я попытался получить TablePosition ячейки, в которой я нахожусь. Я также попытался использовать FocusModel, но в итоге просто сфокусировался вместо выбора ячейки.(очевидно)
@FXML
private TableView<Task> taskTableView;
@FXML
private TableColumn<Task, Task> taskTableColumn;
@FXML
private TableColumn<Task, String> durationTableColumn;
@FXML
private TableColumn<Task, String> descriptionTableColumn;
public class TaskController {
taskTableColumn.setOnEditCommit(e -> {
// Selection Mode is Single, dont worry
Task selectedTask = taskTableView.getSelectionModel().getSelectedItem();
// 'Edit the cell value' code, not necessary for this
taskTableView.getSelectionModel().select(selectedTask);
}
}
Я ожидал, что ячейка будет выбрана снова, потому что у меня есть свойство для одиночного выбора.Но оказалось, что нужно просто выбрать последнюю ячейку подряд.
Редактировать: Это тоже не сработало для меня.
int selectedIndex = taskEntryTableView.getSelectionModel().getSelectedIndex();
taskEntryTableView.getSelectionModel().select(selectedIndex);
Идея возникла у меня, но я не уверенесли это возможноТак как похоже на методы, которые я пытался до выбора строки, можно ли получить другую позицию из столбца?