我正在使用 Charva 编写销售点软件。我在 JTextArea 中有一个命令行。我只想允许其中包含特殊字符。我想在打印之前测试用户的按键操作。如果是允许的字符,则打印,如果不是,则不打印。
另一种方法是在不允许的情况下删除该字符,但由于某些原因我无法做到这一点。
最佳答案
我会做这样的事情:
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();
}
解释:获取输入的字符,将其转换为字符串(不知道字符是否有.matches(regexp),java中的字符不是我的 friend ),检查是否与我的正则表达式匹配,如果不匹配,则消耗该事件并未打印 key 。
PS:这里使用的事件是KeyTyped
。
PS2:如果您不熟悉正则表达式(regexp),请查看 this .
关于java - 查瓦 : JTextArea : Test a char (KeyEvent) before print it?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31322183/