3

タッチスクリーン(いたるところにある大きなボタン)用に設計されたJava Swingアプリを用意し、通常どおり、入力フィールド(テキストボックス、コンボ、チェックボックス、ラジオなど)とデータを保存するボタンで構成される多くのフォームを用意します。 。

ASP .NETのバリデーターシステムとほぼ同じように、ボタンのクリックで起動して検証の概要(メッセージボックスに表示される可能性が高い)を表示するバリデーター(必須、数値のみ、通常の式など)を実装する「一般的な」方法が必要です。ボタンと一緒に同じ検証グループ内の入力フィールドに一連のバリデーターを割り当てると、すべてのバリデーターがテストに合格するまでクリックイベントは発生しません。

問題は、この検証スタイルにどのように実装するか、またはどのフレームワークを使用するかです。

これまでのところ、Web上で3つのオプションを見てきましたが、どれも私のニーズに適合していません。

  • Java SwingのInputVerfierクラス:これはシンプルで優れていますが、入力がフォーカスを失い、タッチスクリーンユーザーにとって本当に迷惑になる場合に機能します。

  • Simple Validation API:これは私の検証スタイルに最も近いAPIですが、下部にエラーを表示する検証パネルと緊密に結合されているようです。このAPIのバリエーションを使用して、画面にエラーを表示する方法を変更できます。

  • JGoodiesの検証:強力すぎるようですが、簡単な例が見つかりませんでした。このフレームワークで必要と思われるため、モデルパターンを実装していません。

4

1 に答える 1

0

OVal (http://http://oval.sourceforge.net/) は、あなたのニーズを完全に満たすかもしれません。

フォームからのすべての値のプレースホルダーがあるとします。ユーザーがフォームを送信するときに、実際のデータを作成して入力することができます。OVal を使用すると、クラス フィールドの制約を定義できます。

public class BusinessObject {

  @NotNull
  @NotEmpty
  @Length(max=32)
  private String name;

  ...
}

それを定義すると、検証手順を簡単にトリガーできます。OVal は違反のリストを提供するので、要約ダイアログを簡単に作成できます。

Validator validator = new Validator();
BusinessObject bo = new BusinessObject();

// collect the constraint violations
List<ConstraintViolation> violations = validator.validate(bo);

ゲッター制約を使用して、中間のプレースホルダーを取り除くことができます。

public class BusinessObject {

  @IsInvariant
  @NotNull 
  @Length(max = 4)
  public String getName() {
  ...
  }
}

OVal はクリーンな設計原則に従っており、簡単に拡張できることに注意してください。とにかく、箱から出してすぐに非常に多くのパワーを提供します。

  • 式言語を使用した条件付き制約
  • ネストされたプロパティの制約
  • 再帰的検証
  • メソッド パラメータの制約
  • 前提条件のスクリプト式
  • メソッドの戻り値の制約
  • UI ユーザー入力の検証を簡素化するプローブ モード
  • などなど

http://oval.sourceforge.net/userguide.htmlを参照してください。

于 2012-10-08T10:58:36.617 に答える