gpt4 book ai didi

java - DatePicker 上的事件过滤器针对一个操作触发两次

转载 作者:行者123 更新时间:2023-12-01 08:49:17 25 4
gpt4 key购买 nike

我有以下代码可以使用键盘修改日期选择器中的日期:

DatePicker startDatePicker = new DatePicker();
startDatePicker.addEventFilter(KeyEvent.KEY_PRESSED, (event) -> {

if (event.getCode().equals(KeyCode.UP)){

startDatePicker.setValue(startDatePicker.valueProperty().get().plusDays(1));
event.consume();


}else if (event.getCode().equals(KeyCode.DOWN)){

startDatePicker.setValue(startDatePicker.valueProperty().get().minusDays(1));
event.consume();


}

});

但是,无论我做什么,每次按键都会触发两次事件。我尝试使用 KEY_PRESSED 和 KEY_RELEASED,消耗或不消耗事件,但无论我做什么,它总是会触发两次(使用控制台输出进行测试,每次按键都会产生两行)。现在我正在使用 boolean 变量来解决它,因此该事件仅每隔一段时间才起作用,但必须有比这更好的解决方案。

最佳答案

我不完全确定为什么会发生这种情况;看起来日期选择器的弹出窗口接收到事件,并将其重定向到日期选择器,然后日期选择器本身独立接收事件。这可能是一个错误。将监听器添加到文本字段是否足够解决问题:

startDatePicker.getEditor().addEventFilter(KeyEvent.KEY_PRESSED, ...);

关于java - DatePicker 上的事件过滤器针对一个操作触发两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42483299/

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