JTextField用户输入的实时格式

时间:2014-04-17 13:21:00

标签: java validation jtextfield jformattedtextfield

我想在输入时实时格式化用户输入。

例如,如果我希望用户输入日期,我希望文本字段以浅灰色显示日期格式。用户只能在输入时输入有效数字。

如果我需要用户输入电话号码,格式将在文本字段中以浅灰色显示,用户只能输入有效数字...

这里可以找到一个javascript示例: http://omarshammas.github.io/formancejs#dd_mm_yyyy

我查看了JFormattedTextField,但它似乎并没有阻止用户输入错误的字符。

我想知道如何在Java中执行与上面链接的javascript代码相同的操作。

是否有任何想法可以帮助我开始使用或任何已经执行此操作的lib?

提前感谢任何建议。

1 个答案:

答案 0 :(得分:0)

KeyListener接口有三种实现方法:keyPressed,keyTyped和keyReleased。按下每个键后,您可以在此实现的侦听器中执行所需操作。因此,例如,如果键入的当前键或文本字段的当前内容未经您的批准,您可以采取您需要采取的视觉或逻辑操作。

我一般不喜欢链接,但here是一个关于KeyListeners的小教程。

这是一个将KeyListener添加到JTextField的示例:

usernameTextField.addKeyListener(new KeyAdapter() {
    public void keyReleased(KeyEvent e) {
        JTextField textField = (JTextField) e.getSource();
        String text = textField.getText();
        textField.setText(text.toUpperCase());
    }

    public void keyTyped(KeyEvent e) {
        // TODO: Do something for the keyTyped event
    }

    public void keyPressed(KeyEvent e) {
        // TODO: Do something for the keyPressed event
    }
});