Java JTextField';用户输入的实时格式化

Java JTextField';用户输入的实时格式化,java,validation,jtextfield,jformattedtextfield,Java,Validation,Jtextfield,Jformattedtextfield,我想在用户输入时实时格式化用户输入 例如,如果我希望用户输入日期,我希望文本字段以浅灰色显示日期格式。用户只能在键入时输入有效数字 如果我需要用户输入电话号码,文本字段中的格式将显示为浅灰色,用户只能输入有效数字 下面可以找到一个javascript示例: 我查看了JFormattedTextField,但它似乎不能阻止用户输入错误的字符 我想知道如何在Java中做与上面链接的javascript代码相同的事情 有什么想法可以帮助我开始,或者有什么lib已经在这样做了 提前感谢您的建议。该界面

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

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

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

下面可以找到一个javascript示例:

我查看了JFormattedTextField,但它似乎不能阻止用户输入错误的字符

我想知道如何在Java中做与上面链接的javascript代码相同的事情

有什么想法可以帮助我开始,或者有什么lib已经在这样做了

提前感谢您的建议。

该界面有三种实现方法:按键、键入键和释放键。当按下每个键时,您可以在这个实现的侦听器中执行所需的操作。因此,例如,如果当前键入的键或文本字段的当前内容未得到您的批准,您可以采取需要采取的视觉或逻辑操作

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

下面是一个向JTextField添加KeyListener的示例:

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
    }
});