Java - редактируемая проверка ComboBox - PullRequest
3 голосов
/ 01 мая 2009

Я изучаю различные способы проверки ввода для редактируемого 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. Замените JTextField JComboBox на JFormattedTextField.

  3. Вы можете использовать верификатор ввода в качестве альтернативы пользовательскому формататору

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

Спасибо.

1 Ответ

2 голосов
/ 02 мая 2009

Это то, для чего предназначен InputVerifier. Я бы начал с одного из них, но на самом деле это должно сработать. Какая-то конкретная причина в ваших требованиях, почему она не будет работать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...