Charva : JTextArea : 在打印之前测试一个字符(KeyEvent)?
Charva : JTextArea : Test a char (KeyEvent) before print it?
我正在使用 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 中的字符不是我的朋友),检查是否与我的正则表达式匹配,如果不匹配,事件被消费了,key没有打印出来。
PS:这里使用的事件是KeyTyped
.
PS2:如果您不熟悉正则表达式 (regexp),请查看 this。
我正在使用 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 中的字符不是我的朋友),检查是否与我的正则表达式匹配,如果不匹配,事件被消费了,key没有打印出来。
PS:这里使用的事件是KeyTyped
.
PS2:如果您不熟悉正则表达式 (regexp),请查看 this。