Java - 可编辑的ComboBox验证

时间:2009-05-01 19:21:22

标签: java validation jcombobox

我正在研究验证可编辑JComboBox的输入的各种方法。目前,我需要将输入限制在指定范围内的数字。到目前为止,我发现了3种不同的方式。有关最佳方法的任何想法吗?

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

comboBox.setEditable(true);
  1. 通过实现覆盖insertString和remove方法的专用Document来控制用户输入。

    // 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) {}
    }
    
  4. 感谢。

1 个答案:

答案 0 :(得分:2)

这就是InputVerifier的设计目标。我从其中一个开始,但真的应该这样做。您的要求中有什么特殊原因导致它不起作用吗?