请问如何限制在JTextField中允许输入的最大字符数?

cowboy1114 2003-08-21 09:40:51
原来在VB中有个方法setMaxLength(int len)可以限定文本框中输入的最大字符数,Java中没有相关的方法设置吗?难道还要对keyPressed(KeyEvent event)进行手动编程控制?
...全文
298 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ihyinger 2003-08-21
  • 打赏
  • 举报
回复
分数你看着给吧:) 不给也行:) 没关系
至于简单点的办法。你可以参考jdk帮助文档。找找相应方法:)
这个只是检测数字的方法。你把这个类直接copy到你的文件中new NumberDocument(12));就能用了:)
至于字符等等的检测方法,你按照这个思路写写看就行了:)
cowboy1114 2003-08-21
  • 打赏
  • 举报
回复
有没有简单点的方法,本来Java代码就比较多。。。。
编得不错,好多类我都没碰过,你要多少分?
ihyinger 2003-08-21
  • 打赏
  • 举报
回复
可以把输入的字符拆成数组。然后在取你要的数值。比如下面这个输入数字长度的方法:
首先在构造函数中
JTextField.setDocument(new NumberDocument(12));意思是说最多能输入12个数字。然后下面添加下面的类,就行了

class NumberDocument
extends PlainDocument {
int len;

public NumberDocument(int length) {
len = length;
}

public void insertString(int offs,
String str,
AttributeSet a) throws BadLocationException {
char[] source = str.toCharArray();
char[] result = new char[source.length];
int j = 0;

for (int i = 0; i < result.length; i++) {
if (Character.isDigit(source[i]) && getLength() < len) {
result[j++] = source[i];
}
else {

}
}
super.insertString(offs, new String(result, 0, j), a);
}
}
cowboy1114 2003-08-21
  • 打赏
  • 举报
回复
我问的是用Swing编程,跟javascript根本扯不上边!

zeros(ff) 如果解决得精彩,加分没问题,你要多少分?
守破之间 2003-08-21
  • 打赏
  • 举报
回复
用java script进行客户端效验,大家不都是这样干的么,那么麻烦有意义么
zeros 2003-08-21
  • 打赏
  • 举报
回复
可不可以多点分,我马上解答!

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧