我正在研究验证可编辑JComboBox的输入的各种方法。目前,我需要将输入限制在指定范围内的数字。到目前为止,我发现了3种不同的方式。有关最佳方法的任何想法吗?
JComboBox comboBox = new JComboBox(
new Object[] {"Donnie", "Danny", "Joey", "Jordan", "Jonathan"}
);
comboBox.setEditable(true);
通过实现覆盖insertString和remove方法的专用Document来控制用户输入。
// 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) {}
}
感谢。
答案 0 :(得分:2)
这就是InputVerifier的设计目标。我从其中一个开始,但真的应该这样做。您的要求中有什么特殊原因导致它不起作用吗?