2

Swing API 是否有结合 InputVerifiers 的类?例如,我当前的项目中有三个 InputVerifier:

  1. NotEmptyInputVerifier - 验证文本字段不为空
  2. PositiveIntegerInputVerifier - 验证文本字段是否包含正整数
  3. YearInputVerifier - 验证文本字段是否包含四位数年份

NotEmptyInputVerifier 需要用于所有输入,无论是字符串还是数字。PositiveIntegerInput 需要检查文本字段是否为空,并另外检查输入字符串是否仅包含数字。YearInputVerifier 还需要检查输入是否正好是四位数字,且前导数字非零。

现在每一个都建立在另一个之上。我可以通过组合或继承轻松实现这一点。似乎这种模式在 Swing 应用程序中经常出现,我认为一个小的包装类,比如 AndInputVerifier,将非常有用,可以属于 Swing API。不过我还没有找到,所以我认为它不存在。;-(

如果不在 Swing API 中,有谁知道这是否存在于第三方包中?

4

1 回答 1

4

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;
    }

}
于 2012-09-12T18:54:22.853 回答