`
gyabooks
  • 浏览: 23013 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

文本控件内容录入限制(含源代码说明)(一)

阅读更多

博采众生在程序 的开发过程中,经常用到对文本框录入内容的检验,实际上我们让实现简单一些,通过一个统一的限制,例如只能输入0-9数字,或是含有小数点和负号的数学数值等等。

本文向你展示,通过Java的文本类型的父类JTextComponent中控制文本编辑(setDocument)和输入检查(setInputVerifier)的API实现输 入限制。请注意,所有的实现没有通过事件机制。

整个例子通过两部分介绍,先是介绍程序的例子,而后再介绍如何的实现。

在本例子中仅使用了文本框(JTextField),文本域(JTextArea)与此类似。文中的对话框在使用的时候可以设定为不出现,代之以系统 声音,如Windows中“当当”的声音。

博采众生

图一,程序总界面

博采众生

图二,实现对IP地址录入的检查

如果录入错误格式的IP地址,将会弹出该对话框,同时光标不允许离开,除非把刚才的录入内容清除为空,思想就是,通过“.”的数量 和位置确定,截取字段,判断范围。

博采众生

图三,实现录入大写或是小写的设定

这个功能的实现主要就是通过setDocument()API进行的。Document类控制着文本框内容的编辑,通过对插入字符的提前处理(使用 String类中大小写的转换),把处理过得内容传递给文本框。

博采众生

图四,数学数值的录入检查

也是通过setDocument()API进行提前处理和判断,原理同图三的解释说明。

博采众生

图五,0-9数字录入的限制

博采众生

图六,数值录入范围的限制

注意该方法的实现是把数值(任意型)转换为float类型的,然后在判断我们设定的范围,这个实现也是通过setInputVerifier()API 完成。如果录入的为非数值,那么将会有错误的提示信息。

博采众生

图七,数值录入范围的限制

以下为程序代码清单,文中加重颜色部分为是实现检验代码:

  1. packagenet.csdn.blog.qb2049_xg.exam;
  2. importjava.awt.Container;
  3. importjava.awt.GridBagConstraints;
  4. importjava.awt.GridBagLayout;
  5. importjavax.swing.JFrame;
  6. importjavax.swing.JLabel;
  7. importjavax.swing.JTextField;
  8. importnet.csdn.blog.qb2049_xg.tools.JTextHelp;
  9. importnet.csdn.blog.qb2049_xg.tools.MidScr;
  10. /**
  11. *@authorUlyssesMa
  12. *@date2008-9-24
  13. */
  14. publicclassJTextHelpExamextendsJFrame{
  15. /**
  16. * 粗体部分实现了对这种应用实现
  17. */
  18. privatestaticfinallongserialVersionUID=2049L;
  19. //构造函数
  20. publicJTextHelpExam(){
  21. this.setTitle("测试文本框的特殊需 求");
  22. this.setSize(450,300);
  23. MidScrms=newMidScr(this);
  24. this.setLocation(ms.getX(),ms.getY());
  25. Containerc=this.getContentPane();
  26. GridBagLayoutgb=newGridBagLayout ();
  27. GridBagConstraintscon=newGridBagConstraints();
  28. c.setLayout (gb);
  29. //UI设定
  30. con.fill=GridBagConstraints.NONE;
  31. con.gridx=0;
  32. con.gridwidth=2;
  33. con.gridy=0;
  34. con.gridheight=2;
  35. JLabeltitle_l=newJLabel("<html><h1>测试文本框的特殊需求 </h1></html>");
  36. c.add(title_l,con);
  37. con.gridy=2;
  38. con.gridheight=1;
  39. con.gridwidth=1;
  40. JLabelstr_number_l=newJLabel("仅能接受9个阿拉伯数字");
  41. c.add (str_number_l,con);
  42. JTextFieldstr_number_t=newJTextField(15);
  43. newJTextHelp (str_number_t,JTextHelp.STRICT_NUMBER,true).insertCheck ();
  44. str_number_t.setToolTipText("有对话框提 示!");
  45. con.gridx=1;
  46. c.add(str_number_t,con);
  47. con.gridx=<spa n="" class="number">0<span>;</span></spa>
  48. con.gridy=3;
  49. JLabelnumber_l=newJLabel("仅能接受含有小数点和负号的录入");
  50. c.add (number_l,con);
  51. JTextFieldnumber_t=newJTextField(15);
  52. newJTextHelp (number_t,JTextHelp.NUMBER,true).insertCheck ();
  53. number_t.setToolTipText("有对话框提 示!");
  54. con.gridx=1;
  55. c.add(number_t,con);
  56. con.gridy=<spa n="" class="number">4<span>;</span></spa>
  57. con.gridx=0;
  58. JLabelupperCase_l=newJLabel("敲入字母时就只是大写字母");
  59. c.add (upperCase_l,con);
  60. JTextFieldupperCase_t=newJTextField(15);
  61. newJTextHelp (upperCase_t,JTextHelp.UPPERCASE).insertCheck();
  62. con.gridx=1;
  63. c.add (upperCase_t,con);
  64. con.gridy=5;
  65. con.gridx=0;
  66. JLabellowerCase_l=newJLabel("敲入字母时就只是小写字 母");
  67. c.add(lowerCase_l,con);
  68. JTextFieldlowerCase_t=newJTextField (15);
  69. newJTextHelp(lowerCase_t,JTextHelp.LOWERCASE).insertCheck();
  70. con.gridx=1;
  71. c.add(lowerCase_t,con);
  72. con.gridy=<spa n="" class="number">6<span>;</span></spa>
  73. con.gridx=0;
  74. JLabelip_l=newJLabel("IP地址录入检查");
  75. c.add (ip_l,con);
  76. JTextFieldip_t=newJTextField(15);
  77. newJTextHelp (ip_t,JTextHelp.IPv4CHECK,true).insertCheck ();
  78. ip_t.setToolTipText("有对话框提 示!");
  79. con.gridx=1;
  80. c.add(ip_t,con);
  81. con.gridy=<spa n="" class="number">7<span>;</span></spa>
  82. con.gridx=0;
  83. JLabelmax_min_l=newJLabel("数值大小范围的限制");
  84. c.add (max_min_l,con);
  85. JTextFieldmax_min_t=newJTextField(15);
  86. newJTextHelp (max_min_t,JTextHelp.MAX_MIN,true,100,1000).insertCheck();
  87. max_min_t.setToolTipText ("有对话框提示,本例子中范围限制在100到1000之间!");
  88. con.gridx=1;
  89. c.add(max_min_t,con);
  90. this.setVisible(true);
  91. this.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
  92. }
  93. /**
  94. *@paramargs
  95. */
  96. publicstaticvoidmain (String[]args){
  97. //TODOAuto- generatedmethodstub
  98. JFrame.setDefaultLookAndFeelDecorated (true);
  99. newJTextHelpExam();
  100. }
  101. }

本例中引用了两个自己写的工具类,其中MidScr是实现窗体居中显示,可以点击链接查看这个类的说明,JTextHelp是关于如何实现,请你查看下一文章:文本控件内容录入限制(含源代码说明)(二)

alimama_pid="mm_11642003_1480608_3725409"; alimama_titlecolor="0000FF"; alimama_descolor ="000000"; alimama_bgcolor="FFFFFF"; alimama_bordercolor="E6E6E6"; alimama_linkcolor="008000"; alimama_bottomcolor="FFFFFF"; alimama_anglesize="0"; alimama_bgpic="0"; alimama_icon="0"; alimama_sizecode="11"; alimama_width=760; alimama_height=90; alimama_type=2;

分享到:
评论

相关推荐

    文本录入限制源代码-Java

    实现了对文本控件类录入限制,可以只能输入数值或是数字,或是IP地址检查,有关情况可以访问我的blog:http://blog.csdn.net/QB2049_XG/archive/2008/09/26/2984645.aspx,查看是否值得下载。

    Powerbuilder9.0实用教程源代码

    Powerbuilder 9.0实用教程》源代码 1.本源代码包括以下章节源代码: 第01章 认识PowerBuilder 9.0、第05章 创建应用程序、第06章 创建窗体、第07章 创建菜单和工具栏、第10章 应用程序的调试和发布、第11章 ...

    VB利用DataGrid控件辅助录入MSHFlexGrid数据

    一个标准的VB编辑控件,VB利用DataGrid控件辅助录入数据,当输入数据并按下 ENTER 键,或用鼠标单击MSHFlexGrid控件中的另一个单元时,焦点将返回此控件。这时 TextBox 中的文本被复制到活动单元中。ESC:隐藏焦点并...

    学生信息管理程序 源代码

    随着信息技术的广泛应用和在...这个简单的文本编辑器软件—学生信息录入,主要是将学生的信息录入并且显示出来。本程序主要是通过使用JAVA中的一些控件来实现功能按钮。通过事件的响应来实现各框架,各按钮间的功能实现

    JavaScript完全自学宝典 源代码

    1.本书1~21章所附代码的运行环境 操作系统:Windows 2003、Windows XP Professional,或者Windows 2000 开发环境:UltraEdit12.10a、eclipse-jee-europa Web浏览器:Microsoft Internet Explorer 6.0及以上版本 ...

    Visual C++ 2005入门经典--源代码及课后练习答案

    该资料是《Visual C++ 2005入门经典》的源代码及课后练习答案 对应的书籍资料见: Visual C++ 2005入门经典 基本信息 原书名: Ivor Horton's Beginning Visual C++ 2005 原出版社: Wiley 作者: (美)Ivor Horton...

    VC++6.0从入门到时精通

    源代码在光盘中此目录下“\02\实例2-1\HelloMFC”。 实例2-2:介绍应用程序运行过程的实例。源代码在光盘中此目录下“\02\实例2-2\hello”。 实例2-3:技巧演示程序。源代码在光盘中此目录下“\02\实例2-3\EditApp”...

    ASP+ACCESS网上远程教育网设计和实现(开题报告+源代码+毕设文档+答辩).zip

    在系统分析中以模块功能结构图,系统分析说明书和数据流图的形式确定了系统的基本框架,然后用E-R图说明了系统的库表结构,并对各功能模块的特点作了具体分析,最后论文从网页上的文本、控件、链接、功能等属性分析...

    《Delphi 6灵感设计》范例源代码

    学习单66 ISAPI应用开发 学习单67 数据的录入与修改 学习单68 常规报表的实现 学习单69 基于TTable的Filter属性的查询 学习单70 基于TQuery的Params属性的查询 学习单71 SQL语言的使用 学习单72 一个DBGrid中显示多...

    silverlight 3 控件经典入门学习案例

    案例中的控件全部有源代码示范学习为主。 1.Calendar组件(日历组件) 2.ChildWindow组件(子窗体组件) 3.浮动窗体组件 4.GridSplitter组件 5.TabControl组件 6-7-8.TreeView组件 9.DtarGrid 10.强大的...

    html入门到放弃笔记

    这是一段包含 ,粗体,斜体,下划线,删除线,上标,下标的文本内容 将以上文本内,对应文字的特殊效果,用标记体现出来 3、标题元素 以 醒目 的方式表现出文本 语法: 一级标题 二级标题 三级标题 四级...

    SynEdit Studio V2005.05.23

    19.TSynEditor,新增加的TSynEdit的继承控件,增加对编辑文档管理的支持和一些增强型功能 20.SynMsgDialog,一个消息框单元,参照Dialogs中MessageDlg的代码进行改进并重写; 21.SynEditStrRes,一个字符串常量声明单元,...

    傲世源.NET代码生成器V1.0

    傲世源代码生成器是一款为C#数据库程序员设计的自动代码生成器,傲世源 生成的代码基于面向对象的思想和三层架构设计,结合了目前最经典的设计思想和设计模式,融入了工厂模式,反射机制等等一系列操作。能实现对...

    SynEdit Studio V2005.05.29

    19.TSynEditor,新增加的TSynEdit的继承控件,增加对编辑文档管理的支持和一些增强型功能 20.SynMsgDialog,一个消息框单元,参照Dialogs中MessageDlg的代码进行改进并重写; 21.SynEditStrRes,一个字符串常量声明单元,...

    SynEdit Studio v2005.06.01 儿童节大礼包

    19.TSynEditor,新增加的TSynEdit的继承控件,增加对编辑文档管理的支持和一些增强型功能 20.SynMsgDialog,一个消息框单元,参照Dialogs中MessageDlg的代码进行改进并重写; 21.SynEditStrRes,一个字符串常量声明单元,...

    数据库课程设计报告-人事管理系统.doc

    课 程 设 计 报 告 书 专 业: 信息管理与信息系统 课程设计名称: 《数据库原理及应用》 题 目: 人事... 七:代码部分 在设计过程中运用到的代码,下面以几个页面源代码作为示例 1. 添加部门信息 using System; using

    SynEdit Studio V2005.06.08

    19.TSynEditor,新增加的TSynEdit的继承控件,增加对编辑文档管理的支持和一些增强型功能 20.SynMsgDialog,一个消息框单元,参照Dialogs中MessageDlg的代码进行改进并重写; 21.SynEditStrRes,一个字符串常量声明单元,...

Global site tag (gtag.js) - Google Analytics