2

Swing APIには、InputVerifiersを組み合わせたクラスがありますか?たとえば、現在のプロジェクトには3つのInputVerifiersがあります。

  1. NotEmptyInputVerifier-テキストフィールドが空でないことを確認します
  2. PositiveIntegerInputVerifier-テキストフィールドに正の整数が含まれていることを確認します
  3. YearInputVerifier-テキストフィールドに4桁の年が含まれていることを確認します

NotEmptyInputVerifierは、文字列か数値かに関係なく、すべての入力に使用する必要があります。PositiveIntegerInputは、テキストフィールドが空ないことを確認し、さらに入力文字列に数字のみが含まれていることを確認する必要があります。YearInputVerifierは、入力が正確に4桁であり、先頭の桁がゼロ以外であることも確認する必要があります。

今、これらのそれぞれは他の上に構築されています。これは、構成または継承を使用して簡単に実装できます。このパターンはSwingアプリケーションで頻繁に発生するようで、AndInputVerifierなどの小さなラッパークラスがSwingAPIに属するのに十分役立つと思います。でも見つけられなかったので、存在しないと思います。;-(

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 に答える