Charva:JTextArea:在打印之前测试一个char(KeyEvent)吗?

时间:2015-07-09 15:39:29

标签: java jtextarea ncurses

我正在使用Charva编写销售点软件。我在JTextArea中有一个命令行。我想只允许特殊字符。我想在打印之前测试用户的按键。如果它是允许的字符,它将被打印,如果不是,它将不会被打印。

另一种方法是在不允许的情况下删除字符,但由于某些原因我无法删除。

1 个答案:

答案 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