【问题标题】:Validating a buffered value in JGoodies Binding在 JGoodies Binding 中验证缓冲值
【发布时间】:2014-03-24 17:57:30
【问题描述】:

我使用代码:

JTextField textField = BasicComponentFactory.createFormattedTextField(valueModel, numberFormatter);

这会导致 JTextfield 工作得非常好,当我提交绑定到演示模型的触发器时,它会自动将 512.1!5 更改为 512.1 而没有错误。运行起来非常顺利,但我想弹出一个 JDialog 说嘿,您输入了 512.1!5,其中包含无效值,以便用户确切知道发生了什么。我在 JGoodies Binding 中找不到一个钩子来设置它。我尝试在我的 PresentatonModel 的 getBufferedComponentModel() 上添加一个 propertyChangeListener,但它只会报告已经有的值!字符缺失。因此我不知道如何检测格式错误,是否有一些 JGoodies bean 侦听器可以让我知道何时提醒用户?

【问题讨论】:

    标签: java swing binding jgoodies


    【解决方案1】:

    您可以使用 jgoodies 验证器接口来验证该文本字段上的任何输入 编写您自己的验证器类,该类实现以下接口。例如,类名是 TextFieldValidator。

    Validator<T>
    

    前提是您将文本字段绑定到 PresentationModel。

    TextFieldValidator<T> validator = (TextFieldValidator<T>) getPresentationModel().getValidator();
            validator.setComponent(getYourTextField());
    

    setComponent 将在 TextFieldValidator 类中设置 JTextField 引用,在 validate() 方法中,您可以显示弹出窗口/更改背景颜色等。

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 2012-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-16
      • 1970-01-01
      相关资源
      最近更新 更多