Sample : 桁数が決められているTextFieldの実装
実装サンプル : 2_1.桁数が決められているTextの実装
桁数が決められているTextFieldの実装方法をご紹介します。
実装方法パターン毎に説明したしますので、目的にあった実装を選択してください。
FocusOut時にチェックエラーを発生させる↑top
Focusを抜けた時にチェックを行い、エラーダイアログを表示する場合は、 標準のチェッククラスを使用することにより実装が可能です。
設定内容
- DMC/データ型に桁数を設定
- CAMC/アイテムの[基本データ]に設定したDMC/データ型 を設定
- CAMC/コンポーネントに DefaultTextField のGUI部品を追加
- CAMC/アイテムの[コンポーネント]に上記TextFieldを設定
- CAMC/アイテムの[チェック]に○を設定
この実装の場合は、桁数チェック以外のDMCデータ型に設定された各種データ属性のチェックも
行われます。
また、標準のチェッククラスの実装では「バイト数」でのチェックを行います。
チェックエラー発生時には上記ダイアログが表示されます。
メッセージ内容は、${CAMC/コンポーネントの表示文字列}\n${エラー内容} が表示されます。
メッセージ内容を変更したい場合には、チェッククラスを自作します。
[公式Document] チェッククラス
[公式Document] データタイプ
[製品Class] jp.ne.mki.wedge.data.check.DefaultDataCheck
指定桁数以上はKey入力をできなくする↑top
指定桁数以上はKey入力をできなくする方法は複数あります。
各方法のメリット、デメリットを参考にして 目的にあった実装を選択してください。
チェッククラス/RealTimeチェック の使用↑top
設定内容
- DMC/データ型に桁数を設定
- CAMC/アイテムの[基本データ]に設定したDMC/データ型 を設定
- CAMC/コンポーネントに DefaultTextField のGUI部品を追加
- CAMC/アイテムの[コンポーネント]に上記TextFieldを設定
- CAMC/コンポーネントのコンポーネント属性[RealTimeInputCheck]にtrueを設定
RealTimeチェックでは「バイト数」でのチェックを行います。
RealTimeチェックの内容は チェッククラスを自作することにより変更が可能です。
[公式Document] コンポーネント属性/RealTimeInputCheck
[製品Class] jp.ne.mki.wedge.data.check.DefaultDataCheck#isInsertOk(java.lang.String, java.lang.String, int)
バイト/桁数制限付きコンポーネント の使用↑top
DefaultTextFieldなど、標準のGUI部品の代わりに バイト/桁数制限付きコンポーネントを使用することにより、 指定桁数以上のKey入力ができなくなります。
- バイト制限付テキストフィールド
- 桁数制限付テキストフィールド
- バイト制限付パスワードフィールド
- 桁数制限付パスワードフィールド
- テーブルエディタ/バイト制限付きテキストフィールドエディタ
- テーブルエディタ/桁数制限付テキストフィールドエディタ
上記コンポーネントを使用する場合、チェッククラス/RealTimeチェック の使用はできなくなりますので、 ご注意ください。
設定内容
- DMC/データ型に桁数を設定
- CAMC/アイテムの[基本データ]に設定したDMC/データ型 を設定
- CAMC/コンポーネントに ByteLimitedTextField のGUI部品を追加
- CAMC/アイテムの[コンポーネント]に上記TextFieldを設定
FormattedTextField の使用↑top
FormattedTextFieldに使用可能なMaskFormatterの指定により文字数の制限をかけることが
可能です。
FormattedTextFieldの場合、入力形式が固定(FIX) ・・・ 必ず5桁の数字を入力し 1桁-4桁の入力はエラー ・・・
などの場合ではよりよい方法です。
使用時は未入力部分に _(アンダーバー) が表示されます。
未入力状態でも 予め -(ハイフン) などの文字を入れておくことにより、入力しやすくさせることも
可能です。 ex. ___ - ___
この方法を使用する場合には、MaskFormatterの知識、実装が必要になります。