JavaFX警报自动关闭

时间:2016-02-23 16:04:29

标签: javafx javafx-8

我有一个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警报取消按钮警告框按预期显示。

有没有办法在显示警告框之前清除任何键盘事件,或者有关如何实现此目的的任何其他想法。

2 个答案:

答案 0 :(得分:1)

如果Escape键事件传播到Alert弹出窗口,则可能必须在主屏幕上使用键盘事件。因此,在主屏幕中明确地处理按键事件并确保它被消耗以防止它向前冒泡。虽然,我不建议使用Escape键除取消之外的任何其他内容。我还避免在此处理程序中使用该事件,除非它已被真正处理过。

答案 1 :(得分:0)

您可以尝试在Platform.runLater内显示提醒,到那时该事件将完成传播。

Platform.runLater(new Runnable() {
    @Override public void run() {
        // alert code here
    }
});