怎么限制 JTextField中只可以输入4个字符.注意是只可以输入4个,不是显示4个。
比如你输入1234,再输入5时是输入不了的。
比如你输入1234,再输入5时是输入不了的。
解决方案 »
- 困扰我一整天了,不知道为什么,ObjectOutputStream的writeObject()老是出错!!!
- 怎么使SWT的Text中的部分文字改变颜色或字体?
- 这是为什么呢??
- 求java反编译和RetroGuard混淆编译软件
- 怪问题,怎么回事啊?
- 求算法,把一个表示32位浮点数的二进制存储格式的字符串转换为对应的浮点数
- FutureTask 不返回结果
- java访问sql server数据库,为什么只能查询系统自带得表,而找不到用户表?
- Who can give me javac.exe?
- 请问如何启动服务?
- 急救呀,用classLoader.getResourceAsStream()找不到文件
- 用Java如何调用 SQL的存储过程并接收 返回值
jtf.setDocument(new PlainDocument(){
public void insertString(int offset,String str,AttributeSet as)
throws BadLocationException{
if(this.getLength()+str.length() >= 4){
java.awt.Toolkit.getDefaultToolkit().beep();
}
else
super.insertString(offset,str,as);
}
});
上例中当插入一个(或一串字符,这可能是使用了粘贴)时检查有无超过4个字,有则发出咚咚的声音提示,否则将str插入.
谢拉
不过我想问一下if语句里面的这句
getLength() + str.length()是什么意思,
为什么获取长度还要加上字符串的长度呢?
for(int i = 0;i < str.length();i++)
if(!Character.isDigit(str.charAt(i))){
//这为提示代码
}
另外,getLength() 为没插入前的字符长度,如果加上新插入的超过了4就不干,所以才加上阿。
你提到的“要对JTextField对象实时监空 怎么做啊”我不太明白,呵呵。反正JTextField是负责显示数据,数据维护由PlainDocument来负责。你说监控应该指监控其数据,建议你Java doc中关于该类的详细说明