3
編集可能なJComboBoxの入力を検証するさまざまな方法を検討しています。現在、入力を指定した範囲の数値に制限する必要があります。これまで私は3つの異なる方法を見つけました。これにアプローチする最善の方法に関する考えはありますか?Java - 編集可能なComboBox検証
メソッドをオーバーライド専門のドキュメントを実装することにより、ユーザの入力を制御しますinsertStringし、削除します。
// get the combo boxes editor component JTextComponent editor = (JTextComponent) comboBox.getEditor().getEditorComponent(); // change the editor's document editor.setDocument(new BadDocument())
JFormattedTextFieldでJComboBoxのJTextFieldを置き換えます。
カスタムフォーマッタの代替
// set the input verifier setInputVerifier(verifier); class MyVerifier extends InputVerifier implements ActionListener { public boolean shouldYieldFocus(JComponent input) {} }
おかげで、入力検証を使用することができます。
理由はありません。多くのオプションを指摘し、現在のベストプラクティスをよりよく理解したかったのです。 – javacavaj
これをもう少し考えてみると、実際に数字以外の入力を防止したいと思っています。 InputVerifierは、フォーカスを失う前にのみチェックします。どのように各文字が入力されるのを確認できますか?ありがとう。 – javacavaj
それでは、もしあなたがそれが '生きている'必要があれば、私はカスタムドキュメントのアプローチに行きます。 – willcodejavaforfood