JAVA之JTextField限制输入长度
来源:互联网 发布:怎么用模拟器登录淘宝 编辑:程序博客网 时间:2024/05/22 10:30
JTextField中,我们需要设置它的输入长度,但是呢?JAVA中没有给出具体的方法,那么只好自己来写一个了。
这里先给出第一种方法:
对于JTextField的对象,给它增加一个事件监听,每当从键盘敲入一个字符时,就对它的长度进行判断,如果长度达到某一条件,则无法继续输入(通过consume方法实现)。
public void keyTyped(KeyEvent e) {// TODO Auto-generated method stubString s = textField.getText();if(s.length() >= 8) e.consume();}经过测试,在keyReleased方法和keyPressed方法中调用consume方法无法实现该效果。
先来介绍一下这个consume方法,该方法是用来销毁实例的。在上述代码中,当s的长度大于等于8时,就销毁多出来的字符了,从而达到了限制输入长度的效果。
我测试了一下,当我按下一个按键时,首先调用的是keyPressed方法,然后再将键入的字符显示到JTextField文本框中,最后再调用keyReleased方法。
也就是说,如果我在keyPressed中调用consume方法,它就无法做到限制字符输入长度的效果,因为文本框中的字符是在我进行完keyPressed方法后显示的。
同样的,为什么在keyRelease中也不行呢?我是这样认为的(不知道对不对),在调用keyPressed后,字符就立刻显示到了文本框中,但是此时还没有调用keyReleased方法,所以同样达不到通过consume方法来限制输入长度的效果。
以上都是个人观点,至于对不对我也不知道,我百度了好久也没找到这方面的资料。
然后第二种方法:
关于这类问题,还有一种通过调用setDocument方法,参数是继承PlainDocument的类对象,并且在该类中重写insertString方法,代码如下:
public class JTextFieldLimit extends PlainDocument {private int limit; //限制的长度public JTextFieldLimit(int limit) {super(); //调用父类构造this.limit = limit;}public void insertString(int offset, String str, AttributeSet attr) throws BadLocationException {if(str == null) return;if((getLength() + str.length()) <= limit) {super.insertString(offset, str, attr);//调用父类方法}}}
THE END~
2 0
- JAVA之JTextField限制输入长度
- JAVA之JTextField限制输入长度
- JTextField之限制输入条件(长度,类型)
- Java限制JTextField输入
- 限制JTextField只能输入数字以及输入最大长度
- 限制JTextField只能输入数字以及输入最大长度
- java 重载JTextField 使其具有背景图片和限制输入长度大小
- JAVA 限制JTextField只输入数字
- 实现JTextfield只能输入数字并限制长度
- Java限制格式,只能输入数字的输入框JTextField
- JAVA基础:SWING中JTextField限制只能输入数字
- Java jTextField十六进制输入
- jtextfield限制字数与数字输入
- 限制JTextField的输入个数和格式
- JTextField限制输入数字的方法
- java JTextField之监听器
- java Swing JTextField 限制输入字符(复制粘贴也有效)
- 输入长度的限制
- Ubuntu15.x /CentOS 7.x 以后 设置开机启动,添加自定义系统服务,自定义开机启动
- C语言算法之老鼠走迷宫
- v4l2
- 好用原型設計軟體 Mockplus 免費畫互動 App 與網頁
- OA市场将爆发 未来几年空间无限
- JAVA之JTextField限制输入长度
- 每天三道冲刺工作--在排序好的数组中查找和为给定值的两个数字
- 【干货】见招拆招,智解阿里知识侵权
- 第一章 jQuery 起步
- Hibernate缓存
- ListView数据动态刷新
- 剑指offer-9 斐波那契数列
- git安装以后初始化共享库以后用ssh 公钥登录clone代码的设置
- 修改maven本地仓库路径