フォーマッタテキストフィールドで数値の上限を設定したい。次の形式の文字列があるとします。
036 12分23.67インチ
最初の数値は 180 未満である必要があるため、ユーザーが 180 より大きい数値を入力しようとすると、マスクする必要があります。上記のように MaskFormatter を使用して文字列をフォーマットしましたが、最初の数値に上限を設定できませんでした。どうすればこれを達成できますか。ありがとう。
フォーマッタテキストフィールドで数値の上限を設定したい。次の形式の文字列があるとします。
036 12分23.67インチ
最初の数値は 180 未満である必要があるため、ユーザーが 180 より大きい数値を入力しようとすると、マスクする必要があります。上記のように MaskFormatter を使用して文字列をフォーマットしましたが、最初の数値に上限を設定できませんでした。どうすればこれを達成できますか。ありがとう。
JFormattedTextField でこれを直接行う方法がわかりません。
解決策の 1 つは、InputVerifier を使用して、ユーザーがタブを離したときにエラー メッセージが表示され、フォーカスがテキスト フィールドに戻るようにすることです。
もう 1 つの方法は、DocumentFilter を AbstractDocument に追加することです。次に、ドキュメントに追加する前にテキストを編集できます。詳細については、テキスト コンポーネントの機能に関する Swing チュートリアルのセクションを参照してください。