1

我使用代码:

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

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

4

1 回答 1

2

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

Validator<T>

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

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

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

希望有帮助。

于 2014-03-31T19:57:32.583 回答