問題タブ [inputverifier]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - いつ、どのように検証しますか?
この質問は、入力データを検証するときにコードの重複を避けるための優れた方法に関するものです。
アプリケーションは、スプレッドシート (XLS または XLSX) をインポートし、複数(元のスプレッドシートの各行を参照OrderList
) を含むオブジェクトをインスタンス化します。OrderUnits
ユーザーは、一部のプロパティを変更できます。また、インポート スプレッドシートで設定されていないプロパティも変更できます。つまり、インポート機能はデータのベースを形成し、ユーザーによって拡張されます。一部のプロパティは自動的に設定されます (たとえば、orderUnit の長さが 5.0 メートルを超える場合、材料はデフォルトのプラスチックではなくスチールに設定されます)。これは json 構成ファイルであり、タイプ (文字列、10 進数、リスト) や検証 (not_blank など) などのフィールドを含む、orderunit のすべてのプロパティを定義できます。
私の質問: データを挿入するには 2 つの方法があるため、orderUnit プロパティが設定される前にデータを検証するのに適した場所はどこですか?
1 つはデータのインポートです。これはモデル クラスで完全に行われ、
OrderUnit
カスタム検証メカニズムを使用できます。JTextComponents
もう 1 つの場所は、インポート後に設定または変更できる経由です。InputVerifier
私はすべてで使用したいと思いJComponent
ます。
しかし、これは私の検証基準のコードの重複につながります。
一度検証するか、少なくとも同じ検証モデルを 2 回再利用する良い方法はありますか?
java - JTextField から InputVerifier を削除する
これがドキュメントや少なくとも google にないことに本当に驚いています。
ベリファイアを削除するか、別のものに置き換える必要がある可能性が高いクラスがあります。特に、これらのメソッドはインターフェースで定義されています。
実装できますbind
:
しかし、どうすればJTextField から入力ベリファイアを設定解除できますか?
java - JavaでInputVerifierを呼び出す方法は?
NetBeans IDE を使用して、Java と Swing を使用したグラフィック ユーザー インターフェイスを設計しています。GUI の目的は、ユーザー入力を受け取り、Fortran で書かれたプログラムの入力として使用されるテキスト ファイルを生成することです。
問題は、Fortran プログラムがファイル名またはパス内のスペースを処理できないことです。そのため、GUI 内からユーザーのファイル名にスペースが含まれていないことを確認する必要があります。
これを行う InputVerifierContainsNoSpaces
を実装しました。ただし、ユーザーが jTextField に注目している場合にのみ呼び出されます。問題は、ユーザーが jTextField に注目せず、代わりに JFileChooser をアクティブにする jButton を使用してファイル名を入力することです。
私がやりたいことはjTextField1.verifyInput()
、アクション リスナー内に次のようなものを配置jButton1ActionPerfromed
して、ユーザーにエラー ダイアログを表示できるようにすることです。これどうやってするの?
最小限の(そうではない)動作例を次に示します。
java - Java Swing JTextField setInputVerifier は TextField にフォーカスし続ける
コンストラクターにpublic class JdbDateTextField extends JTextField
and を追加しthis.setInputVerifier(new ValidDateOrEmptyVerifier());
ます。
class ValidDateOrEmptyVerifier extends InputVerifier
入力の形式を確認するために使用します。
入力の形式が間違っていて、ユーザーが のフォーカスを失った場合JdbDateTextField
、 に戻りfalse
、ValidDateOrEmptyVerifier
再び にフォーカスがJdbDateTextField
戻ります。
これは、ユーザーが からJdbDateTextField
別の textField に切り替えるか、ボタンを押した場合に機能します。ボタンを押したときに の入力の形式が間違っている場合、ボタンに対するアクションは実行されず、フォーカスは のままJdbDateTextField
です。
これはまさに私が欲しいものです。ユーザーはJdbDateTextField
、有効な文字列を入力するまで、 を離れることはできません。
問題は、JdbDateTextField
が JPanel にあるJTabbedPane
ため、いくつかのタブを持つ GUI があることです。
選択した場合はJdbDateTextField
、無効な入力を入力してから、別のタブを直接クリックしてもタブが切り替わります。そのため、間違った入力を提供することができました。
私の質問は:
入力検証を実行する前に他のイベントを実行することを許可しない方法はありますか?true
java - 電子メールアドレスが有効な形式であることを入力コントロールに確認させるにはどうすればよいですか?
私はフォームを持っており、入力するフィールドの中には、入力アドレスが標準のメールと一致するようにコントロールしたいメールがあります
java - InputVerifier の Java インターフェイス
私はこのコードを持っています:
}
これは Clienti インターフェースです。インターフェイスが 内で互換性がないことがわかりましたInputVerifier
。この問題を解決するにはどうすればよいですか?