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

this.myField.setText("11");


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

this.myField.requestFocus();


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

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

最佳答案

我通过setText方法将有效的默认值应用于字段


如果默认值有效,那么为什么需要调用输入验证程序?


  我尝试以编程方式请求焦点


正确的使用方法是:

component.requestFocusInWindow()


但是,这仅在请求将焦点放在可见GUI上的组件时有效。


  在哪里可以让您检查所有字段的有效性状态


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

09-10 20:19