@FXML
public void newItem() {
FXMLLoader fxmlLoader = new FXMLLoader();
fxmlLoader.setLocation(getClass().getResource("newEventDialog.fxml"));
try {
dialog.getDialogPane().setContent(fxmlLoader.load());
} catch (IOException e) {
System.out.println("Error loading new Dialog : " + e.getMessage());
}
newEventDialogController newController = fxmlLoader.getController();
dialog.getDialogPane().getButtonTypes().addAll(ButtonType.OK, ButtonType.CANCEL);
Optional<ButtonType> result = dialog.showAndWait();
if (result.isPresent() && result.get() == ButtonType.OK) {
newController.addItem();
refreshList();
}
}
public void addItem() {
if (validateFields()) {
String eventdate = datepick.getValue().format(DateTimeFormatter.ofPattern("dd/MM/yyyy"));
Item item = new Item(namefield.getText(), emailfield.getText(), typefield.getText(), eventdate);
Datasource.getInstance().insertEvent(item);
} else {
Alert alert = new Alert(Alert.AlertType.ERROR);
alert.setContentText("Error: One or more fields are empty.");
alert.showAndWait();
}
}
您可以截取对话框
的ButtonType.OK
操作。试试这个。
dialog.getDialogPane().getButtonTypes().addAll(ButtonType.OK, ButtonType.CANCEL);
final Button btOk = (Button)dialog.getDialogPane().lookupButton(ButtonType.OK);
btOk.addEventFilter(ActionEvent.ACTION, event -> {
if (newController.addItem()) {
refreshList();
} else {
event.consume(); // Make dialog NOT to be closed.
}
});
Optional<ButtonType> result = dialog.showAndWait();
在对话框的控制器中
// Return false, if you want NOT to close dialog.
public boolean addItem() {
if (validateFields()) {
String eventdate = datepick.getValue().format(DateTimeFormatter.ofPattern("dd/MM/yyyy"));
Item item = new Item(namefield.getText(), emailfield.getText(), typefield.getText(), eventdate);
Datasource.getInstance().insertEvent(item);
return true;
} else {
Alert alert = new Alert(Alert.AlertType.ERROR);
alert.setContentText("Error: One or more fields are empty.");
alert.showAndWait();
return false;
}
}
在dialog
API文档中描述了这种方法。对话框验证/拦截按钮操作
我想在我的编码中添加对话框。对话框可以弹出。假设用户按下ok按钮后对话框将关闭,但对话框将自动关闭。这是我的密码。有什么问题吗?
场景是:您在窗口(a)中,单击按钮/链接启动打印过程,然后打开一个新窗口(B),其中包含要打印的内容,打印对话立即显示,如果您单击窗口(B)的取消按钮,那么您应该可以再次打印,但当您单击窗口(B)的打印按钮打印时,您可以打印,但窗口(a)的按钮不能再次继续打印。给我一些解决方案…!!!在chrome,Firefox和internet explorer上工作
本文向大家介绍C#实现winform自动关闭MessageBox对话框的方法,包括了C#实现winform自动关闭MessageBox对话框的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#实现winform自动关闭MessageBox对话框的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的C#程序设计有所帮助。
我有一个JFrame调用一个新的JDialog,这个JDialog有一个关闭它的按钮。 当JDialog关闭时,JFrame应该重新绘制。但是当我用按钮关闭JDialog时,什么也不会发生,当我用经典的“X”按钮关闭时,就不会发生这种情况。 这是来自JFrame的windowListener: 这里是JDialog中关闭JDialog的按钮的代码: 就像我说的,监听器中的JFrame需要在JDia
我想要2列图标
问题内容: 我正在开发可访问性应用程序。当用户想要离开该应用程序时,我会显示一个对话框,在该对话框中他必须确认要离开,如果5秒钟后他仍未确认,则该对话框应自动关闭(因为用户可能意外打开了该对话框)。这类似于在Windows上更改屏幕分辨率时发生的情况(会出现警报,如果您没有确认,它将恢复为以前的配置)。 这是我显示对话框的方式: 显示对话框后5秒钟如何关闭对话框? 问题答案: