我正在使用Charva编写销售点软件。我在JTextArea中有一个命令行。我想只允许特殊字符。我想在打印之前测试用户的按键。如果它是允许的字符,它将被打印,如果不是,它将不会被打印。
另一种方法是在不允许的情况下删除字符,但由于某些原因我无法删除。
答案 0 :(得分:1)
我会做这样的事情:
private void myTextArea_KeyTyped(java.awt.event.KeyEvent evt) {
String key = String.valueOf(evt.getKeyChar());
String validChars = "[a-zA-Z0-9]";
if(!key.matches(validChars))
evt.consume();
}
说明:获取输入字符,将其转换为字符串(如果char有.matches(regexp)则为dunno,java中的字符不是我的朋友),检查是否与我的正则表达式匹配,如果不匹配,则事件被消耗,钥匙没有打印。
PS:此处使用的事件是KeyTyped
。
PS2:如果您不熟悉正则表达式(regexp),请检查this。