我想在输入时实时格式化用户输入。
例如,如果我希望用户输入日期,我希望文本字段以浅灰色显示日期格式。用户只能在输入时输入有效数字。
如果我需要用户输入电话号码,格式将在文本字段中以浅灰色显示,用户只能输入有效数字...
这里可以找到一个javascript示例: http://omarshammas.github.io/formancejs#dd_mm_yyyy
我查看了JFormattedTextField,但它似乎并没有阻止用户输入错误的字符。
我想知道如何在Java中执行与上面链接的javascript代码相同的操作。
是否有任何想法可以帮助我开始使用或任何已经执行此操作的lib?
提前感谢任何建议。
答案 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
}
});