gpt4 book ai didi

JavaFX TextField 覆盖按键 UP/DOWN 行为

转载 作者:太空宇宙 更新时间:2023-11-04 10:26:13 28 4
gpt4 key购买 nike

我正在设计一个带有 TextField 的自定义时间控件,并希望实现按 UP 键时增加小时或分钟的功能。

这就是我打算这样做的方式:

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 Textfield - Override default behaviour when up key is released

但是在文本开头设置插入符号的事件发生在我的事件处理程序之前,因此这对我没有帮助。

有谁知道我如何“覆盖”这种行为?

最佳答案

@James_D 的解决方案解决了我的问题。

textField.addEventFilter(KeyEvent.KEY_PRESSED, 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;
}
});

关于JavaFX TextField 覆盖按键 UP/DOWN 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50496174/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com