java - 查瓦 : JTextArea : Test a char (KeyEvent) before print it?

标签 java jtextarea ncurses

我正在使用 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/

相关文章:

java - 如何使用 RESTEasy 客户端框架在 POST 中发送数据

java - 在 jtable 中显示查询

c - ncurses透明控制台背景

java - 如何处理RecyclerView中的点击事件

java - 在外部 lib 文件夹中构建具有依赖项的 war

java - JTextArea 强制父级 JScrollPane 向下滚动

java - JTextArea 的输入

java - addactionListener(this) 如何正确放置这行代码?

c - NCurses 聊天行为不当,阻止选择

调用 calloc - 内存泄漏 valgrind