在程序
的开发过程中,经常用到对文本框录入内容的检验,实际上我们让实现简单一些,通过一个统一的限制,例如只能输入0-9数字,或是含有小数点和负号的数学数值等等。
本文向你展示,通过Java的文本类型的父类JTextComponent中控制文本编辑(setDocument)和输入检查(setInputVerifier)的API实现输
入限制。请注意,所有的实现没有通过事件机制。
整个例子通过两部分介绍,先是介绍程序的例子,而后再介绍如何的实现。
在本例子中仅使用了文本框(JTextField),文本域(JTextArea)与此类似。文中的对话框在使用的时候可以设定为不出现,代之以系统
声音,如Windows中“当当”的声音。
图一,程序总界面
图二,实现对IP地址录入的检查
如果录入错误格式的IP地址,将会弹出该对话框,同时光标不允许离开,除非把刚才的录入内容清除为空,思想就是,通过“.”的数量
和位置确定,截取字段,判断范围。
图三,实现录入大写或是小写的设定
这个功能的实现主要就是通过setDocument()API进行的。Document类控制着文本框内容的编辑,通过对插入字符的提前处理(使用
String类中大小写的转换),把处理过得内容传递给文本框。
图四,数学数值的录入检查
也是通过setDocument()API进行提前处理和判断,原理同图三的解释说明。
图五,0-9数字录入的限制
图六,数值录入范围的限制
注意该方法的实现是把数值(任意型)转换为float类型的,然后在判断我们设定的范围,这个实现也是通过setInputVerifier()API
完成。如果录入的为非数值,那么将会有错误的提示信息。
图七,数值录入范围的限制
以下为程序代码清单,文中加重颜色部分为是实现检验代码:
-
packagenet.csdn.blog.qb2049_xg.exam;
-
importjava.awt.Container;
-
importjava.awt.GridBagConstraints;
-
importjava.awt.GridBagLayout;
-
importjavax.swing.JFrame;
-
importjavax.swing.JLabel;
-
importjavax.swing.JTextField;
-
importnet.csdn.blog.qb2049_xg.tools.JTextHelp;
-
importnet.csdn.blog.qb2049_xg.tools.MidScr;
-
-
-
publicclassJTextHelpExamextendsJFrame{
-
-
-
privatestaticfinallongserialVersionUID=2049L;
-
-
publicJTextHelpExam(){
-
this.setTitle("测试文本框的特殊需
求");
-
this.setSize(450,300);
-
MidScrms=newMidScr(this);
-
this.setLocation(ms.getX(),ms.getY());
- Containerc=this.getContentPane();
-
GridBagLayoutgb=newGridBagLayout
();
-
GridBagConstraintscon=newGridBagConstraints();
- c.setLayout
(gb);
-
- con.fill=GridBagConstraints.NONE;
-
con.gridx=0;
-
con.gridwidth=2;
-
con.gridy=0;
-
con.gridheight=2;
-
JLabeltitle_l=newJLabel("<html><h1>测试文本框的特殊需求
</h1></html>");
- c.add(title_l,con);
-
con.gridy=2;
-
con.gridheight=1;
-
con.gridwidth=1;
-
JLabelstr_number_l=newJLabel("仅能接受9个阿拉伯数字");
- c.add
(str_number_l,con);
-
JTextFieldstr_number_t=newJTextField(15);
-
newJTextHelp
(str_number_t,JTextHelp.STRICT_NUMBER,true).insertCheck
();
-
str_number_t.setToolTipText("有对话框提
示!");
-
con.gridx=1;
- c.add(str_number_t,con);
-
con.gridx=<spa n="" class="number">0<span>;</span></spa>
-
con.gridy=3;
-
JLabelnumber_l=newJLabel("仅能接受含有小数点和负号的录入");
- c.add
(number_l,con);
-
JTextFieldnumber_t=newJTextField(15);
-
newJTextHelp
(number_t,JTextHelp.NUMBER,true).insertCheck
();
-
number_t.setToolTipText("有对话框提
示!");
-
con.gridx=1;
- c.add(number_t,con);
-
con.gridy=<spa n="" class="number">4<span>;</span></spa>
-
con.gridx=0;
-
JLabelupperCase_l=newJLabel("敲入字母时就只是大写字母");
- c.add
(upperCase_l,con);
-
JTextFieldupperCase_t=newJTextField(15);
-
newJTextHelp
(upperCase_t,JTextHelp.UPPERCASE).insertCheck();
-
con.gridx=1;
- c.add
(upperCase_t,con);
-
con.gridy=5;
-
con.gridx=0;
-
JLabellowerCase_l=newJLabel("敲入字母时就只是小写字
母");
- c.add(lowerCase_l,con);
-
JTextFieldlowerCase_t=newJTextField
(15);
-
newJTextHelp(lowerCase_t,JTextHelp.LOWERCASE).insertCheck();
-
con.gridx=1;
- c.add(lowerCase_t,con);
-
con.gridy=<spa n="" class="number">6<span>;</span></spa>
-
con.gridx=0;
-
JLabelip_l=newJLabel("IP地址录入检查");
- c.add
(ip_l,con);
-
JTextFieldip_t=newJTextField(15);
-
newJTextHelp
(ip_t,JTextHelp.IPv4CHECK,true).insertCheck
();
-
ip_t.setToolTipText("有对话框提
示!");
-
con.gridx=1;
- c.add(ip_t,con);
-
con.gridy=<spa n="" class="number">7<span>;</span></spa>
-
con.gridx=0;
-
JLabelmax_min_l=newJLabel("数值大小范围的限制");
- c.add
(max_min_l,con);
-
JTextFieldmax_min_t=newJTextField(15);
-
newJTextHelp
(max_min_t,JTextHelp.MAX_MIN,true,100,1000).insertCheck();
-
max_min_t.setToolTipText
("有对话框提示,本例子中范围限制在100到1000之间!");
-
con.gridx=1;
- c.add(max_min_t,con);
-
this.setVisible(true);
-
this.setDefaultCloseOperation
(JFrame.EXIT_ON_CLOSE);
- }
-
-
-
publicstaticvoidmain
(String[]args){
-
-
JFrame.setDefaultLookAndFeelDecorated
(true);
-
newJTextHelpExam();
- }
- }
本例中引用了两个自己写的工具类,其中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;
分享到:
相关推荐
实现了对文本控件类录入限制,可以只能输入数值或是数字,或是IP地址检查,有关情况可以访问我的blog:http://blog.csdn.net/QB2049_XG/archive/2008/09/26/2984645.aspx,查看是否值得下载。
【标题】"VFP代码录入小程序.rar_vfp_vfp源代码"所指的是一款基于Visual FoxPro(VFP)开发的代码录入应用。VFP,全称Visual FoxPro,是微软公司推出的一种关系数据库管理系统,它结合了数据库管理和程序设计的功能...
《VB源代码 几十个适合初学的源代码》是一个非常适合初学者的资源集合,它包含了一系列基于Visual Basic(VB)的源代码示例。这些源代码来自于《VB从初学到精通》这本书,旨在帮助初学者理解并掌握VB编程的基本概念...
在C#编程中,数据绑定是一项关键特性,它允许开发者将UI控件与数据源连接起来,实现数据的动态展示和交互。数据绑定控件在Windows Forms和WPF(Windows Presentation Foundation)等平台上广泛使用,简化了用户界面...
2. **TextMatrix**:这是一个二维数组,用于直接访问和修改单元格的文本内容。例如,`FlexGrid.TextMatrix(0, 0) = "Hello"` 将在第一行第一列填充文本"Hello"。 3. **SelRow** 和 **SelCol**:这些属性用于定位...
Powerbuilder 9.0实用教程》源代码 1.本源代码包括以下章节源代码: 第01章 认识PowerBuilder 9.0、第05章 创建应用程序、第06章 创建窗体、第07章 创建菜单和工具栏、第10章 应用程序的调试和发布、第11章 ...
"代码中国.txt"可能是源代码的一部分或代码的解释,而".url"文件则可能指向一个网页链接,提供了更多关于这个主题的信息或者相关的开发者社区。 在实际开发中,理解并掌握这种自定义控件的技巧是非常重要的,它能够...
1. **文本编辑**:源代码中会包含一个或多个`CEdit`控件,用于用户输入日记内容。这些控件会与事件处理函数关联,实现文本的录入、修改、删除等操作。 2. **文件操作**:为了保存和读取日记,程序需要实现文件I/O...
**vsFlexGrid控件详解** ...总的来说,vsFlexGrid控件是一个功能强大且灵活的网格控件,对于开发数据密集型的应用程序非常有用。通过深入学习和实践,开发者可以充分利用其特性,提升应用程序的用户体验。
"TextBox"可能是项目中的源代码文件,包含自定义控件的实现。打开此解决方案,你可以看到项目的结构和代码实现,从而学习如何将上述逻辑整合进实际的项目中。 总结来说,这个自定义控件项目展示了如何通过C#来扩展...
开发者可以根据需要修改源代码,扩展控件功能,比如添加时间范围限制、格式化输出、国际化支持等。此外,还可以利用.NET的皮肤机制,改变控件的外观和样式,使其更符合应用的设计风格。 5. **使用方法**: - 添加...
源代码部分让开发者有机会深入理解封装过程,学习如何优化和调整库的功能,以便适应自己的项目需求。而课程示例的代码则可以作为学习和参考,帮助开发者快速上手,了解如何利用这个封装后的库来创建GUI应用。 对于...
一个标准的VB编辑控件,VB利用DataGrid控件辅助录入数据,当输入数据并按下 ENTER 键,或用鼠标单击MSHFlexGrid控件中的另一个单元时,焦点将返回此控件。这时 TextBox 中的文本被复制到活动单元中。ESC:隐藏焦点并...
C#抽奖软件源代码是基于C#编程语言开发的一款用于晚会抽奖或营销活动抽奖的应用程序。这个源代码提供了实现随机抽选参与者的方式,通常适用于各种活动现场或者线上活动,以增加互动性和趣味性。通过深入理解并分析这...
通过对这个源代码的深入研究,开发者不仅能提升MFC应用开发能力,还能掌握到软件工程中的模块划分、数据管理、权限控制等多个方面的重要知识。对于初学者来说,这是一个很好的实践项目,能够帮助他们在理论与实践中...
随着信息技术的广泛应用和在...这个简单的文本编辑器软件—学生信息录入,主要是将学生的信息录入并且显示出来。本程序主要是通过使用JAVA中的一些控件来实现功能按钮。通过事件的响应来实现各框架,各按钮间的功能实现
- `Label`控件:显示文本信息,如欢迎语和学院名称。在Form7中,Label1和Label2分别显示了欢迎信息和学院名称。 - `Timer`控件:用于定时执行指定的代码,例如更改Label的颜色。Timer1的Timer事件负责根据时间变化...
【标题】:“vb超市管理系统设计与实现(源代码+论文)”是一个基于VB.NET技术的毕业设计项目,包含完整的源代码和相关论文文档。这个系统旨在为小型超市提供一个集商品管理、库存控制、销售统计等功能于一体的信息化...
【标题】:“C#客户资料管理系统源代码”是基于C#编程语言开发的一款软件系统,主要目的是管理和维护客户的相关信息。这个系统对于学习C#语言和数据库管理的初学者来说,是一个很好的实践项目。 【描述】:作为C#...
【商品管理系统VB源代码】是基于Visual Basic(VB)编程语言开发的一款单机运行的应用程序,主要用于实现商品的日常管理。VB是一种面向对象的、事件驱动的编程工具,以其直观的编程界面和易于学习的特点,成为了初学...