У меня есть табличное представление с редактируемым столбцом под названием «monto», которое отлично работает при редактировании, щелкая мышью, но мне нужно включить редактирование, когда я нажимаю «enter».
private TableView<Personal> myTable;
private TableColumn<Personal,Double> columnaMonto;
... //Code when user edit with the mouse
columnaMonto.setOnEditCommit(
new EventHandler<TableColumn.CellEditEvent<Personal, Double>>() {
@Override
public void handle(TableColumn.CellEditEvent<Personal, Double> event) {
int pos = event.getTablePosition().getRow();
((Personal)event.getTableView().getItems().get(
event.getTablePosition().getRow())
).setImporte(event.getNewValue());
myTable.requestFocus();
myTable.getSelectionModel().select(pos + 1);
myTable.getFocusModel();
}
}
);
Это моя попытка:
myTable.setOnKeyReleased(evt -> {
if (evt.getCode() == KeyCode.ENTER) {
System.out.println("Enter is OK!!");
TablePosition focusedCellPosition = myTable.getFocusModel().getFocusedCell();
System.out.println(focusedCellPosition.getRow());
myTable.requestFocus();
myTable.edit(focusedCellPosition.getRow(), columnaMonto);
}
});
Проблема всегда заключается в том, чтобы выбрать для редактирования (например, двойной щелчок), и мне это нужно, только если пользователь нажимает ввод.
Другая проблема здесь в том, что полоса прокрутки не работает всегда в одном и том же месте. Пример Img
Спасибо и извините, мне немного сложно объяснить по-английски.