Sample : 桁数が決められているTextFieldの実装

実装サンプル : 2_1.桁数が決められているTextの実装

桁数が決められているTextFieldの実装方法をご紹介します。
実装方法パターン毎に説明したしますので、目的にあった実装を選択してください。

1.FocusOut時にチェックエラーを発生させる
2.指定桁数以上はKey入力をできなくする
2-1.チェッククラス/RealTimeチェック の使用
2-2.バイト/桁数制限付きコンポーネント の使用
2-3.FormattedTextField の使用

FocusOut時にチェックエラーを発生させる↑top

Focusを抜けた時にチェックを行い、エラーダイアログを表示する場合は、 標準のチェッククラスを使用することにより実装が可能です。


設定内容
  1. DMC/データ型に桁数を設定
  2. CAMC/アイテムの[基本データ]に設定したDMC/データ型 を設定
  3. CAMC/コンポーネントに DefaultTextField のGUI部品を追加
  4. CAMC/アイテムの[コンポーネント]に上記TextFieldを設定
  5. CAMC/アイテムの[チェック]に○を設定

この実装の場合は、桁数チェック以外のDMCデータ型に設定された各種データ属性のチェックも 行われます。
また、標準のチェッククラスの実装では「バイト数」でのチェックを行います。

./images/checkerror.png
チェックエラー発生時には上記ダイアログが表示されます。
メッセージ内容は、${CAMC/コンポーネントの表示文字列}\n${エラー内容} が表示されます。
メッセージ内容を変更したい場合には、チェッククラスを自作します。

■参考 URL
[公式Document] チェッククラス
[公式Document] データタイプ
[製品Class] jp.ne.mki.wedge.data.check.DefaultDataCheck

指定桁数以上はKey入力をできなくする↑top

指定桁数以上はKey入力をできなくする方法は複数あります。
各方法のメリット、デメリットを参考にして 目的にあった実装を選択してください。

チェッククラス/RealTimeチェック の使用↑top


設定内容
  1. DMC/データ型に桁数を設定
  2. CAMC/アイテムの[基本データ]に設定したDMC/データ型 を設定
  3. CAMC/コンポーネントに DefaultTextField のGUI部品を追加
  4. CAMC/アイテムの[コンポーネント]に上記TextFieldを設定
  5. CAMC/コンポーネントのコンポーネント属性[RealTimeInputCheck]にtrueを設定

RealTimeチェックでは「バイト数」でのチェックを行います。
RealTimeチェックの内容は チェッククラスを自作することにより変更が可能です。

バイト/桁数制限付きコンポーネント の使用↑top

DefaultTextFieldなど、標準のGUI部品の代わりに バイト/桁数制限付きコンポーネントを使用することにより、 指定桁数以上のKey入力ができなくなります。

  • バイト制限付テキストフィールド
  • 桁数制限付テキストフィールド
  • バイト制限付パスワードフィールド
  • 桁数制限付パスワードフィールド
  • テーブルエディタ/バイト制限付きテキストフィールドエディタ
  • テーブルエディタ/桁数制限付テキストフィールドエディタ

上記コンポーネントを使用する場合、チェッククラス/RealTimeチェック の使用はできなくなりますので、 ご注意ください。


設定内容
  1. DMC/データ型に桁数を設定
  2. CAMC/アイテムの[基本データ]に設定したDMC/データ型 を設定
  3. CAMC/コンポーネントに ByteLimitedTextField のGUI部品を追加
  4. CAMC/アイテムの[コンポーネント]に上記TextFieldを設定
■参考 URL
[公式Document] コンポーネント種類

FormattedTextField の使用↑top

FormattedTextFieldに使用可能なMaskFormatterの指定により文字数の制限をかけることが 可能です。
FormattedTextFieldの場合、入力形式が固定(FIX) ・・・ 必ず5桁の数字を入力し 1桁-4桁の入力はエラー ・・・ などの場合ではよりよい方法です。
使用時は未入力部分に _(アンダーバー) が表示されます。 ./images/formattedtext.png
未入力状態でも 予め -(ハイフン) などの文字を入れておくことにより、入力しやすくさせることも 可能です。 ex. ___ - ___

この方法を使用する場合には、MaskFormatterの知識、実装が必要になります。

■参考 URL
[公式Document] 基本クラス / 表示変換クラス

Valid XHTML 1.1