2009-05-01 20 views
3

編集可能なJComboBoxの入力を検証するさまざまな方法を検討しています。現在、入力を指定した範囲の数値に制限する必要があります。これまで私は3つの異なる方法を見つけました。これにアプローチする最善の方法に関する考えはありますか?Java - 編集可能なComboBox検証

​​
  1. メソッドをオーバーライド専門のドキュメントを実装することにより、ユーザの入力を制御しますinsertStringし、削除します。

    // get the combo boxes editor component 
    JTextComponent editor = 
         (JTextComponent) comboBox.getEditor().getEditorComponent(); 
    // change the editor's document 
    editor.setDocument(new BadDocument()) 
    
  2. JFormattedTextFieldでJComboBoxのJTextFieldを置き換えます。

  3. カスタムフォーマッタの代替

    // set the input verifier 
    setInputVerifier(verifier); 
    
    class MyVerifier extends InputVerifier implements ActionListener 
    { 
        public boolean shouldYieldFocus(JComponent input) {} 
    } 
    

おかげで、入力検証を使用することができます。

答えて

2

これはInputVerifierが行うように設計されたものです。私はそれらの1つから始めるが、実際にはそのトリックを行う必要があります。なぜそれがうまくいかないのかというあなたの要求の何か特別な理由?

+0

理由はありません。多くのオプションを指摘し、現在のベストプラクティスをよりよく理解したかったのです。 – javacavaj

+0

これをもう少し考えてみると、実際に数字以外の入力を防止したいと思っています。 InputVerifierは、フォーカスを失う前にのみチェックします。どのように各文字が入力されるのを確認できますか?ありがとう。 – javacavaj

+0

それでは、もしあなたがそれが '生きている'必要があれば、私はカスタムドキュメントのアプローチに行きます。 – willcodejavaforfood

関連する問題