java - 以编程方式设置文本时 InputVerifier 未激活

标签 java swing validation jtextfield inputverifier

我有一个带有 JTextFields 的 swing 应用程序,我将 InputVerifiers 附加到该应用程序。我通过 setText 方法将有效的默认值应用于字段,例如

this.myField.setText("11");

但似乎 public boolean verify(JComponent component) 不会被调用,除非将焦点应用于字段。我试图以编程方式请求焦点,但似乎仍然没有触发 InputVerifier,例如

this.myField.requestFocus();

如何以编程方式设置文本字段文本并让我的 InputVerifier 触发并运行其 verify() 方法?

我可以在构建 InputVerifier 后手动触发它,调用 verify() 并传入组件,但这似乎真的没有必要,因为 TextField 已经连接到 InputVerifier。

最佳答案

I have valid defaults applied to the fields via the setText method

如果默认值有效,为什么需要调用输入 validator ?

I've tried to programatically request focus

正确的使用方法是:

component.requestFocusInWindow()

但是,这仅在请求关注可见 GUI 上的组件时有效。

where is there something that lets you check the validity status of all your fields

此逻辑应该是“提交”按钮的一部分。 InputVerifier 应该只检查该字段的数据有效性。 “提交”逻辑检查以确保已输入所有字段的数据。

关于java - 以编程方式设置文本时 InputVerifier 未激活,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16299449/

相关文章:

java - 了解java中的 "new"关键字

java - 将 Java swing GUI 与另一个类中的逻辑结合使用

java - Python 验证 API

javascript - ReactJS 表单验证

java - 如何限制线程的执行时间并在运行时间过长时将其终止?

java - Java中的多线程同步

java - XML 签名引用中的 DigestValues 从哪里来?

java9 的窗口比 java8 的大

java - 键入按钮时 JButton 不会改变颜色

radio 输入组的 jQuery 验证器未在 Bootstrap 中验证