Swing API是否具有组合InputVerifiers的类?例如,我在当前项目中有三个InputVerifiers:
NotEmptyInputVerifier需要用于所有输入,无论是字符串还是数字。 PositiveIntegerInput需要检查文本字段是否为空和另外检查输入字符串是否只包含数字。 YearInputVerifier还需要检查输入是否正好是四位数,前导数字非零。
现在每个都建立在另一个上。我可以通过组合或继承来轻松实现这一点。看起来这种模式在Swing应用程序中经常出现,我认为一个小的包装类,比如说AndInputVerifier,对于属于Swing API非常有用。但是,我无法找到一个,所以我认为它不存在。 - (
如果不在Swing API中,是否有人知道这是否存在于第三方软件包中?
答案 0 :(得分:3)
javadoc没有为InputVerifier定义任何子类,因此它在JVM中不存在。
现在,实现你想要的东西并不复杂:
import javax.swing.InputVerifier;
import javax.swing.JComponent;
public class CombinedInputVerifier extends InputVerifier {
private InputVerifier[] verifiers;
public CombinedInputVerifier(InputVerifier... verifiers) {
this.verifiers = verifiers;
}
@Override
public boolean verify(JComponent input) {
for (InputVerifier verifier : verifiers) {
if (!verifier.verify(input)) {
return false;
}
}
return true;
}
}