3

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

JComboBox comboBox = new JComboBox(
    new Object[] {"Donnie", "Danny", "Joey", "Jordan", "Jonathan"}
);

comboBox.setEditable(true);
  1. メソッドinsertStringおよびremoveをオーバーライドする特殊なドキュメントを実装することにより、ユーザー入力を制御します。

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

  3. カスタムフォーマッタの代わりに入力ベリファイアを使用できます

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

ありがとう。

4

1 に答える 1

2

これは、InputVerifier が行うように設計されたものです。私はそれらの1つから始めますが、実際にはそれでうまくいくはずです。それが機能しない理由について、要件に特定の理由はありますか?

于 2009-05-01T20:01:46.930 に答える