我有一个fxml应用程序,其中fxml定义了一个取消按钮和一个onAction处理程序。
+----+----------+-----------------------+
| _id| host | date |
+----+----------+-----------------------+
| 1 | test.com | ISODate('2016-01-01') |
+----+----------+-----------------------+
| 2 | test.com | ISODate('2016-01-03') |
+----+----------+-----------------------+
| 3 | test.com | ISODate('2016-01-04') |
+----+----------+-----------------------+
| 4 | cnn.com | ISODate('2016-01-05') |
+----+----------+-----------------------+
现在的问题是,当在主屏幕上按下esc键时,警告框会闪烁并再次消失,似乎esc键事件仍然在周围传播,因为如果我从中移除了ButtonData.NO警报取消按钮警告框按预期显示。
有没有办法在显示警告框之前清除任何键盘事件,或者有关如何实现此目的的任何其他想法。
答案 0 :(得分:1)
如果Escape键事件传播到Alert弹出窗口,则可能必须在主屏幕上使用键盘事件。因此,在主屏幕中明确地处理按键事件并确保它被消耗以防止它向前冒泡。虽然,我不建议使用Escape键除取消之外的任何其他内容。我还避免在此处理程序中使用该事件,除非它已被真正处理过。
答案 1 :(得分:0)
您可以尝试在Platform.runLater
内显示提醒,到那时该事件将完成传播。
Platform.runLater(new Runnable() {
@Override public void run() {
// alert code here
}
});