gpt4 book ai didi

dialog - 输入验证失败时继续显示对话框

转载 作者:行者123 更新时间:2023-12-04 09:14:30 26 4
gpt4 key购买 nike

我目前有一个包含四个TextField的对话框,从中可以收集输入。当输入不能满足我的要求时,对话框应保持打开状态并显示错误消息。我目前有以下代码:

dlg.setResultConverter(dialogButton -> {

if (dialogButton == createButtonType) {

ArrayList<String> returnList = getInput();

if (returnList != null) {
return returnList;
}
else {
dlg.showAndWait();
}

}
return null;
});

Optional<ArrayList<String>> result = dlg.showAndWait();
result.ifPresent(customerDetails -> {

//Use the input for something

});
getInput()方法从TextFields中获取文本,并根据某些要求对其进行测试。输入通过时,会将四个字符串放入 ArrayList<String>中。否则,该方法返回 null。如您所见,结果转换器检查方法是否返回 null。如果没有,则仅返回 ArrayList<String>

但是,当验证失败时,对话框应保持打开状态。它可以与 dlg.showAndWait()一起使用,但是缺点是它会触发错误: java.lang.IllegalStateException: Stage already visible。 (它一直在工作,但是出现错误不是应该的样子)

我的问题是:有谁知道如何做到这一点而不会触发错误?

注意:我正在使用JavaFX 8(JDK 1.8.0_40),它具有内置的对话框功能。

最佳答案

将监听器添加到TextField中,以验证用户输入。

如果用户输入有效,则启用“OK” Button(或名称正确),如果用户输入无效,则禁用Button

如果禁用了用于关闭ButtonDialog,则关闭Dialog的唯一方法是取消,这将导致生成一个空的Optional

关于dialog - 输入验证失败时继续显示对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27523119/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com