我扩展了ControlsFX对话框以创建自定义验证对话框。我添加了一些自定义按钮,其中一个在单击后触发验证操作。如果验证通过,对话框将以OK结果关闭,但如果对话框无效,则会为对话框结果操作分配一个虚拟操作对象。它的目的(dumy result)只是保存用户试图填充对话框的信息,并允许用户进行一些更正(而不是关闭窗口)。一切都会好的,但有一种情况会产生错误的结果。若用户将用错误数据填写表单,则单击验证按钮,然后单击X按钮(关闭窗口)。在这些步骤之后,对话框结果仍然是一个验证按钮。我试图将一些侦听器绑定到window onCloseRequest()属性,但它没有响应。如何解决这个问题?
以下是我的代码的缩写版本:
public class ValidationDialog extends Dialog {
private ValidationDialog thisDialog;
public final Action DUMMY_ACTION = new AbstractAction("OTHER") {
{
ButtonBar.setType(this, ButtonBar.ButtonType.OTHER);
}
@Override
public void execute(ActionEvent actionEvent) {
//do nothing
}
};
public final Action VALID_OK = new AbstractAction("OK"){
{
ButtonBar.setType(this, ButtonBar.ButtonType.OK_DONE);
}
@Override
public void execute(ActionEvent ae) {
if (isValid()) {
thisDialog.setResult(this);
thisDialog.hide();
} else {
thisDialog.setResult(DUMMY_ACTION);
}
}
};
public ValidationDialog(Object owner, String title) {
super(owner, title);
thisDialog = this;
}
private boolean isValid(){
return false;
}
}
它叫:
ValidationDialog validationDialog = new ValidationDialog(stage, "Fill form");
Action result = validationDialog.show();
if (result.equals(validationDialog.VALID_OK)){
//do important stuff
}
人们可能会认为,单击X总是意味着取消。
到目前为止,唯一的方法是使用getter创建自己的布尔变量,如“有效”,然后将其设置在“隐藏()”之前。
在外面做:
if (dlg.isValid()) {
//dlg success
} else {
//dlg fail
}
问题内容: 我有一个EditText用于输入的对话框。当我单击对话框上的“是”按钮时,它将验证输入,然后关闭对话框。但是,如果输入错误,我希望保留在同一对话框中。每次无论输入什么,当我单击“否”按钮时,都应自动关闭对话框。如何禁用此功能?顺便说一句,我在对话框上的按钮上使用了PositiveButton和NegativeButton。 问题答案: 编辑:这仅在API 8+上有效,如某些注释所述。
问题内容: 你好, 我正在使用Java Swing,并且想在单击按钮时关闭一个窗口。我不知道使用动作侦听器作为执行此操作的最佳方法,但是目前我正在编译错误,因此它一定是不正确的。 这是我的代码: 我遇到的问题是列出的最后一个类,它实际上只是关闭当前窗口,因此再次显示主菜单屏幕。我需要在该类中创建的静态引用。但是将其更改为静态是无效的修饰符吗? 我该如何解决? 问题答案: 试试这个 并发送一个实例给
我有一个JFrame调用一个新的JDialog,这个JDialog有一个关闭它的按钮。 当JDialog关闭时,JFrame应该重新绘制。但是当我用按钮关闭JDialog时,什么也不会发生,当我用经典的“X”按钮关闭时,就不会发生这种情况。 这是来自JFrame的windowListener: 这里是JDialog中关闭JDialog的按钮的代码: 就像我说的,监听器中的JFrame需要在JDia
脚本: 单击父窗口中的审核按钮 子窗口已加载 将控件切换到子窗口 单击子窗口中的“确定”按钮 窗口关闭 从父窗口继续测试 在这里,我面临的挑战是在单击“确定”按钮后切换到父窗口。当窗户关闭时。 硒网络驱动程序:2.48
问题内容: 我正在尝试在应用程序中实现一项功能,当互联网连接不可用时会显示警报。该警报具有两个操作(“确定”和“设置”),每当用户单击设置时,我都希望以编程方式将其设置为电话设置。 我正在使用Swift和Xcode。 问题答案: 使用 Swift 5.1更新 斯威夫特4.2
我用的是Android Studio2.2,最小sdk的项目是23。 请帮助我做所需的代码。