Я создаю пользовательский элемент управления временем с помощью TextField и хочу реализовать функцию увеличения часов или минут при нажатии клавиши ВВЕРХ.
Вот как я намеревался это сделать:
textField.setOnKeyPressed(event -> {
int caretPos = editableNode.getCaretPosition();
switch (event.getCode()) {
case ESCAPE:
getSkinnable().reset();
event.consume();
break;
case UP:
if (!getSkinnable().isInvalid()){
if (caretPos < 3) {
getSkinnable().increaseHour();
selectHour();
} else {
getSkinnable().increaseMinute();
selectMinute();
}
}
event.consume();
break;
}
});
Проблема здесь в том, что клавиша UP по умолчанию устанавливает курсор в начало текста.
Я уже нашел этот пост: Текстовое поле JavaFX - переопределить поведение по умолчанию, когдаклавиша up выпущена
Но событие, которое устанавливает курсор в начале текста, предшествует моему обработчику событий, так что это мне не помогло.
Кто-нибудь знает, как я могу "переопределить "это поведение?