所以我有JFormattedTextField
我需要限制用户输入除字母和连字符之外的任何内容。我不太确定如何使用MaskFormatter
而不明确知道要输入的字符串的长度。
我的代码目前看起来像这样:
MaskFormatter formatter = new MaskFormatter();
formatter.setValidCharacters("ABCDEFGHIJKLMNOPQRSTUVWXYZabscedfghijklmnopqrstuvwxyz-");
JFormattedTextField firstNameTextField = new JFormattedTextField(formatter);
当我拨打firstNameTextField.setText(getName())
时,文字没有设置,留下一个无法使用的空文本字段。
非常感谢任何帮助。感谢。
答案 0 :(得分:0)
由于你不想在字符串长度方面做出承诺,我的印象是,如果你使用常规的JTextField和KeyListener及其KeyAdapter,那么实现JFormattedTextField及其MaskFormatter的效果要容易得多。您可以根据允许的字符串检查每次击键,并接受字符或嘟嘟声。
答案 1 :(得分:0)
嘿,我有一个类似的问题,我使用的代替jFormatter是jTextfield并使用keyListener实现相同
继承代码
jTextFieldName.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent evt) {
char c = evt.getKeyChar();
if(!Character.isDigit(c) || (c==KeyEvent.VK_BACK_SPACE) || (c==KeyEvent.VK_DELETE))
{
f.getToolkit().beep();
evt.consume();
}
}
@Override
public void keyReleased(KeyEvent e) {
}
@Override
public void keyPressed(KeyEvent e) {
}
});
这里'f'只不过是JFrame