`

jTextField的字符长度设为固定长度,超长不能输入 和 只能输入数字

阅读更多



---------------------------------------------------------------

需要通过他的document来管理。


class MyDocument extends PlainDocument{
   int maxLength =10;
   public MyDocument(int newMaxLength){
      super();
      maxLength = newMaxLength;
   }
   public MyDocument(){
      this(10);
   }

   //重载父类的insertString函数
    public void insertString(int offset,String str,AttributeSet a)throws BadLocationException{
    if(getLength()+str.length()>maxLength){//这里假定你的限制长度为10
         return;
    }
    else{ 
        super.insertString(offset,str,a);

    }    
  }

}


然后用这个类控制你的textfield.
JTextField jTextField1 = new JTextField1();
jTextField1.setDocument(new MyDocument(20));
就可以了.


其实你完全可以在MyDocument的那个insertString方法的中加入自己的判断.
比如,可以控制保证输入的是一个整数,或者浮点数什么的.



---------------------------------------------------------------

因为当你的jTextField通过键盘输入或者拷贝一个字符串的时候,他会调用他的document的insertString方法进行插入操作.
你在这个方法中进行控制的话,可以完全改变插入字符串的效果.比如,当文档的长度超过一定时,就不能插入,也就是什么都不作,直接返回.
还比如,当插入一个不合乎要求的字符串的时候,你仍然可以抛弃.
甚至,你可以做到,不管插入什么字符创,都可以在textfield框中显示你的名字什么的.
---------------------------------------------------------------

那你先
jTextField1.setDocument(new  MyDocument());
试试.

---------------------------------------------------------------

哦.应该给MyDocument类写为Public.
或者把这个类写在你要使用的.java文件里边.

另外需要在前面
import javax.swing.text.*;
---------------------------------------------------------------

我试过了,完全可以.

你把上面写的MyDocument类写成一个public类,这样子的话需要一个MyDocument.java文件来保存它.编译.
然后在使用他的地方,把这个类import就可以.

 

只能输入数字:

 

class NumberListener extends KeyAdapter {
        public void keyTyped(KeyEvent e) {
            String numStr = "0123456789." + (char) 8;
            if (numStr.indexOf(e.getKeyChar()) < 0) {
                e.consume();
                JOptionPane.showMessageDialog(null, "抱歉的告诉您:请输入(数字)", "系统提示",
                        JOptionPane.INFORMATION_MESSAGE);

            }

        }
    }

分享到:
评论

相关推荐

    JTextField限制最大数字.txt

    该类的主要目的是限制用户输入的长度不超过指定的数字(在这个例子中是3位数,即最大值为999),并且只允许输入数字字符(0-9)。 **关键方法解析:** - **构造函数** `NumberLenghtLimitedDm(int limit)`: - ...

    JTextField输入时实现位数监听

    在上述代码中,我们创建了一个`JTextField`实例,并设置了它的最大输入长度为10。然后,我们创建了一个`JTextFieldCustomDocumentListener`实例,并将其添加到`JTextField`的`Document`中。当用户尝试输入超过最大...

    控制JTextField的输入

    以下是一个简单的`DocumentFilter`示例,它限制了`JTextField`只能输入数字: ```java public class NumberDocumentFilter extends DocumentFilter { @Override public void insertString(FilterBypass fb, int ...

    弹窗辅助输入JTextField

    在Java Swing应用开发中,有时候我们需要提供一种更加用户友好的输入方式,比如在输入框(JTextField)中输入内容时,能实时根据已输入的字符给出匹配建议,以辅助用户快速选择目标信息。这种功能常见于订机票时输入...

    如何在Java NetBeans中为JTextField设置最大字符长度

    通过以上步骤,你就可以在NetBeans中成功地为`JTextField`设置最大字符长度了。同时,这个过程也展示了Java Swing组件的灵活性和可扩展性,以及如何通过编程方式对组件进行自定义。对于初学者来说,理解`Document`的...

    jTextField中关键字加颜色

    代码片段中实现了一个名为 `color()` 的方法,其主要功能是将 `jTextField1` 中输入的关键字在 `jTextArea1` 中进行搜索,并标记匹配到的关键字。具体步骤如下: 1. **初始化变量**: - `i`:记录 `jTextField1` ...

    编写一个用户注册信息填写验证程序,注册信息包括用户名、密码、EMAIL地址、联系电话。要求验证联系电话中只能输入数字,EMAIL地址中需要包括“@”符号,密码域不少于6位。要求联系电话在输入过程中保证不能有非数字,而其他两个域在点击注册按钮时再进行数据检查。

    在提供的代码片段中,我们看到使用了`JTextField`(用于接收文本输入)、`JButton`(用于触发动作)等Swing组件,以及`ActionListener`和`ItemListener`接口的实现,这些组件和接口都是Java AWT和Swing库的一部分,...

    textField限制输出长度

    在许多应用场景中,我们可能需要限制`textField`所能接受的字符数量,以确保数据的规范性、存储效率或界面显示的一致性。`textField`的字符限制功能可以防止用户输入过长的文本,从而避免数据库溢出、性能下降或其他...

    文本框输入不合理数据时进行验证.rar

    "文本框输入不合理数据时进行验证"这个主题涉及到的是前端和后端开发中的数据验证技术,确保用户输入的数据符合预设的规则,防止错误、非法或恶意的数据进入系统。以下是对这一主题的详细阐述: 1. **前端验证**: ...

    java字符反转代码

    - `textPanel` 包含了两个文本框 `field1` 和 `field2`,其中 `field1` 用于输入原始字符串,而 `field2` 用于显示反转后的结果。 - `tuPanel` 包含了一个带有图片的标签 `label`。 ### 二、字符反转实现 #### ...

    实例2_文本框_文本输入.rar_文本输入

    8. **多语言支持**:在国际化应用中,文本框可能需要支持多种语言的输入,这就需要考虑字符集(如UTF-8)和输入法的兼容性。 9. **数据绑定**:在数据驱动的应用中,文本框的值通常会绑定到应用程序的某个数据模型...

    用javaSE的swing做的计算器,可解析字符串

    然后,我们可以添加各种JButton来表示数字和运算符,以及JLabel或JTextField来显示输入的表达式和计算结果。 计算器的核心功能是对输入的字符串进行解析。在描述中提到的“支持任意长度的加减乘除运算”,这涉及到...

    swing 山寨版验证框架

    2. **最大长度限制**:`setMaxLength`方法用于设定文本组件能输入的最大字符数。如果设置为-1,则表示无限制。这有助于防止用户输入过长的数据,可能导致性能问题或者不符合业务需求。 3. **最大值限制(仅限数字)...

    2021-2022计算机二级等级考试试题及答案No.989.docx

    标识符可以包含字母、数字和下划线,且不能以数字开头。 16. 浏览器的“后退”按钮可以返回前一页面。 17. 循环通常包括初始化、循环体、迭代和终止条件四个部分。 18. Windows查找文件时可以使用通配符`?`代表...

    带图形化界面的SHA-1的算法 JAVA

    - **字符串转换为二进制**:`תוה(String infor)`方法用于将输入字符串转换为二进制表示。 - **消息填充**:`λ(String infor)`方法用于填充原始消息,确保其长度符合SHA-1算法的要求。 - **循环左移**:`public ...

    java编写的猜数游戏

    - **`CheckIsFourNum(String enterString)`**:检查用户输入是否为有效的四位数字字符串。 - 首先尝试将输入转换为整数,若失败则返回`false`。 - 检查字符串长度是否为4。 - **`GetResult(int Num[], String ...

    仿Windows的IP和MAC输入框

    同样,我们可以使用`JFormattedTextField`,但这次需要自定义一个格式器,检查输入是否符合十六进制格式,并且长度为12个字符。我们可以使用`DocumentFilter`实现这个功能。 ```java class ...

    计算机二级java上机真题40道.pdf

    此方法会抛出`NumberFormatException`如果字符串不能被解析为有效的整数。 2. **异常处理** - `throws Exception`: 在Java中,当一个方法可能抛出异常但不处理它时,需要在方法签名中使用`throws`关键字声明异常。...

    java程序登陆小窗口

    #### 2.3 JTextField 和 JPasswordField - `JTextField`:用于输入文本。 - `JPasswordField`:用于输入密码,可以设置显示字符为星号或其他符号以保护隐私。 #### 2.4 ActionEvent 和 ActionListener `ActionEvent...

    java课程设计报告_简单图形界面计算器的设计.docx

    Java课程设计报告的主题是开发一个简单的图形界面计算器,该计算器具备基本的数学运算功能,并且在输入数字时能自动添加千位分隔符。以下是关于这个项目的关键知识点: 1. **Java GUI编程**:Java提供了多种图形...

Global site tag (gtag.js) - Google Analytics