【问题标题】:Disabling OK button of JFace-InputDialog when input is not valid输入无效时禁用 JFace-InputDialog 的 OK 按钮
【发布时间】:2020-04-08 16:00:58
【问题描述】:

我正在尝试使用以下说明通过 Eclipse JFace 输入对话框获取值。

InputDialog inputDialog = new InputDialog(parentShell, dialogTitle, dialogMessage, initialValue, null);
    if (inputDialog.open() == Window.OK)
    {
        return inputDialog.getValue();
    }

我想要做的是验证输入字符串。如果字符串无效(有一些逻辑),请禁用 OK 按钮。

简单来说,当输入字符串有效时启用OK按钮。我可以在验证器方法中实现它吗?。

【问题讨论】:

  • 抱歉,我在 Java 8 SE 中找不到类 InputDialog。也许你可以在这里发minimal reproducible example
  • 是的,你需要一个按钮的引用,它是如何实现的?
  • @SergiyMedvynskyy 看起来更像 SWT :/

标签: java eclipse user-interface swt jface


【解决方案1】:

是的,您可以使用验证器执行此操作。如果IInputValidator.isValid 方法返回一个非空字符串,InputDialog 将自动禁用 OK 按钮。当验证器返回null时,将再次启用OK。

【讨论】:

  • 是的。我创建了一个 IInputValidator 并能够获取 isValid 的非空返回值的错误消息。 Ok 被禁用。
  • 但是需要在同一个promt上添加一个注释(消息)。想着怎么做。任何帮助将不胜感激。
  • isValid 返回的字符串显示在输入文本字段下方。如果您想做其他事情,那就是一个新问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-20
相关资源
最近更新 更多