我有一个带有 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/