java - 如何禁止 JFormattedTextField 中的字符?

标签 java swing netbeans jformattedtextfield

在 NetBeans 中,如何为 JFormattedTextField 设置无效字符,以便它不允许:|[] 等等?

没关系,我找到了解决方案:

MaskFormatter formatter = null;

        try {
            //# - Any valid number, uses Character.isDigit.
            //' - Escape character, used to escape any of the special formatting characters.
            //U - Any character (Character.isLetter). All lowercase letters are mapped to upper case.
            //L - Any character (Character.isLetter). All upper case letters are mapped to lower case.
            //A - Any character or number (Character.isLetter or Character.isDigit)
            //? - Any character (Character.isLetter).
            //* - Anything.
            //H - Any hex character (0-9, a-f or A-F).
            formatter = new MaskFormatter("******************************");
            formatter.setInvalidCharacters("|[]");
        } catch (java.text.ParseException ex) {
        }

然后,在 GUI 上右键单击 JFormattedTextField,单击“自定义代码”,在 myFormattedTextField = new javax.swing.JFormattedTextField(); 旁边的下拉框中选择自定义创建并将格式化程序添加到 JFormattedTextField如下: myFormattedTextField = new javax.swing.JFormattedTextField(formatter);

希望有一天这能对其他人有所帮助。

最佳答案

最方便的方法是添加 DocumentListener那里PatternJFormattedTextField 的值可以插入(字符 block )或逐个字符添加,我建议重写这两种方法

insertUpdate()

changedUpdate()//Plain text components don't fire these events.

对于插入的字符 block ,最好直接实现Pattern p = Pattern.compile("decision charfiltering")

关于java - 如何禁止 JFormattedTextField 中的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8434731/

相关文章:

java - 什么是反斜杠字符 (\\)?

swing - 启用/禁用时的 JTextField 背景颜色

java - 我使用Netbeans 8.2和mysql查询浏览器1.1.20.build成功,错误说源代码不兼容

java - 设置用于测试电子邮件警报的服务器

java - 字符串的 ArrayList 到一个字符串

java - 为所有组件Java设置相同的字体

java - 变量未初始化并隐藏在字段中

netbeans - 无法在 Netbeans 8.2 上创建项目

java - 为什么要按这个顺序输出?

java - JFOREX SDK - 如何向 www 服务器 ssl 连接发送 HTTPS GET 请求