【发布时间】:2017-02-27 10:26:34
【问题描述】:
我有这段代码可以使用键盘在日期选择器中修改日期:
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,消费或不消费事件,但无论我做什么,它总是会触发两次(使用输出到控制台进行测试,每次按键都会产生两行)。现在我正在使用布尔变量解决它,因此该事件仅每隔一次有效,但必须有比这更好的解决方案。
【问题讨论】:
标签: java events javafx eventfilter