【发布时间】:2017-05-24 02:35:31
【问题描述】:
我相信我在 JavaFX API 中遇到了一个错误,但我不确定。所以下面的 sn-p 行为正常,但是当我添加一个alert.show(); 或alert.showAndWait(); 时,程序会打开三个不同的警报对话框。代码如下:
private void datePickerOnHiding(JFXDatePicker datePicker, JFXCheckBox chkBox) {
int counter = 0;
boolean entered = false;
if (datePicker.getValue().isBefore(LocalDate.now()) ||datePicker.getValue().isEqual(LocalDate.now())) {
if ((eventHiddenCounter % 2) == 0) {
System.out.println("HAHA");//Testing
txtfMessage.setVisible(true);
txtfMessage.setText("Please select a future date.");
Alert alert = new Alert(AlertType.WARNING, "Please select a future date.");
alert.showAndWait();
datePicker.setValue(null);
counter ++;
entered = true;
}
} else {
txtfMessage.setVisible(false);
chkBox.setSelected(true);
}
//Testing
System.out.println("" + eventHiddenCounter + ": " + ((eventHiddenCounter % 2) == 0));
System.out.println("COUNTER: " + counter + "\nENTERED: " + entered);
entered = false;
eventHiddenCounter ++;
}
这是注释掉 alert.showAndWait 的输出:
哈哈
0:是的
计数器:1
输入:真
这里包含它(错误):
哈哈
哈哈
哈哈
0:是的
计数器:1
输入:真
1:假
计数器:1
输入:真
2:是的
计数器:1
输入:真
我很困惑——为什么会发生这种情况,我能做些什么来解决它?
顺便说一句,目标是防止用户选择等于或早于当天的日期。
【问题讨论】:
标签: java user-interface javafx javafx-8