Java开发网 Java开发网
注册 | 登录 | 帮助 | 搜索 | 排行榜 | 发帖统计  

您没有登录

» Java开发网 » Java SE 综合讨论区  

按打印兼容模式打印这个话题 打印话题    把这个话题寄给朋友 寄给朋友    该主题的所有更新都将Email到你的邮箱 订阅主题
flat modethreaded modego to previous topicgo to next topicgo to back
作者 Re:求一个只能填写数字的JTextField组件 [Re:CrazyJavar]
Jove



CJSDN高级会员


发贴: 1228
积分: 194
于 2003-04-18 11:02 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
发信人: Jove (死生契阔,与子相悦,执子之手,与子偕老), 信区: Java
标 题: 规定格式的JTextField
发信站: 日月光华 (2003年03月30日00:37:23 星期天), 站内信件

一般检查一个JTextField中的输入是否合法,
会捕获修改事件;或是开个线程定期检查
在1.4中提供了JFormatedTextField,似乎更方便一些
但他使用JavaBean技术,也就是在修改原值时会检查是否合法,如果失败则拒绝修改
因而,一个本只能填数字的textfield,
用户可以输入字母,
而当回车等事件触发时 JFormattedTextField进行检查,回复到上一次正确的状态
往往这不是我们想要的,
比较理想的方式是,
如果这个字段只接受数字,则按下字母键应不发生任何效果

Java图形图象Swing卷实在是本不错的书,这一块他给了很有利的例子
借鉴的,我们可以很容易且优雅的实现一个只接受数字的TextField

JTextField salary=new JTextField(10);
salary.setDocument(new NumOnlyDocument());

class NumOnlyDocument extends PlainDocument{
public void insertString(int offset, String s, AttributeSet attrSet)
throws BadLocationException {
try {
Integer.parseInt(s);
}
catch (NumberFormatException ex) {
return;
}
super.insertString(offset,s,attrSet);
}
}



准备找一份新的工作,一份新的开始.
希望在上海做一个地道的Java Developer, 仅此而已

如有合适的机会,请与我Email联系


话题树型展开
人气 标题 作者 字数 发贴时间
3897 求一个只能填写数字的JTextField组件 jfml 2 2003-04-18 10:56
3385 Re:求一个只能填写数字的JTextField组件 Jove 879 2003-04-18 11:02
3708 Re:求一个只能填写数字的JTextField组件 floater 320 2003-04-18 14:52

flat modethreaded modego to previous topicgo to next topicgo to back
  已读帖子
  新的帖子
  被删除的帖子
Jump to the top of page

   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923