本文介绍的源代码内容需要
配合这篇文章的第一篇一起,点击文本控件内容录入限制(含源代码说明)(一)查看,所有的源代码可以在CSDN的下载空间找到,名字为:“
文本录入限制源代码”,同时也可以留言(Email)我来发送给你,希望你在看过以后,留下建议。
-
packagenet.csdn.blog.qb2049_xg.tools;
-
-
importjava.awt.Toolkit;
-
-
importjavax.swing.InputVerifier;
-
importjavax.swing.JComponent;
-
importjavax.swing.JOptionPane;
-
importjavax.swing.text.AttributeSet;
-
importjavax.swing.text.BadLocationException;
-
importjavax.swing.text.JTextComponent;
-
importjavax.swing.text.PlainDocument;
-
-
-
-
publicclassJTextHelp{
-
-
-
privateJTextComponentjtc;
-
-
publicstaticfinalintNUMBER=1;
-
publicstaticfinalintSTRICT_NUMBER=2;
-
publicstaticfinalintLOWERCASE=3;
-
publicstaticfinalintUPPERCASE=4;
-
publicstaticfinalintIPv4CHECK=5;
-
publicstaticfinalintMAX_MIN=6;
-
-
publicinttask=0;
-
publicintmax=0;
-
publicintmin=0;
-
-
publicStringmessage=null;
-
-
-
privatebooleanneedMessage=false;
-
-
publicJTextHelp
(JTextComponentjtc,inttask,booleanneedMessage){
-
if(task!
=NUMBER&&task!=LOWERCASE&
- &nbs
p;task!=UPPERCASE&&task!=IPv4CHECK&&task!=STRICT_NUMBER&&task!=MAX_MIN)
{
-
&nbs
p;thrownewIllegalArgumentException("JTextHelp的任务只能
是:"+
-
&nbs
p;"NUMBER,
STRICT_NUMBER,IPv4CHECK,LOWERCASE,MAX_MIN或是UPPERCASE");
- }
-
this.jtc=jtc;
-
this.task=task;
-
this.needMessage=needMessage;
- }
-
-
publicJTextHelp
(JTextComponentjtc,inttask){
-
if
(task!=NUMBER&&task!=LOWERCASE&
- &nbs
p;task!=UPPERCASE&&task!=IPv4CHECK&&task!=STRICT_NUMBER&&task!=MAX_MIN){
-
&nbs
p;thrownewIllegalArgumentException("JTextHelp的任务只能
是:"+
-
&nbs
p;"NUMBER,
STRICT_NUMBER,IPv4CHECK,LOWERCASE,MAX_MIN或是UPPERCASE");
- }
-
this.jtc=jtc;
-
this.task=task;
- }
-
-
publicJTextHelp
(JTextComponentjtc,inttask,booleanneedMessage,intmin,intmax){
-
if
(task!=NUMBER&&task!=LOWERCASE&
- &nbs
p;task!=UPPERCASE&&task!=IPv4CHECK&&task!=STRICT_NUMBER&&task!=MAX_MIN){
-
&nbs
p;thrownewIllegalArgumentException("JTextHelp的任务只能
是:"+
-
&nbs
p;"NUMBER,
STRICT_NUMBER,IPv4CHECK,LOWERCASE,MAX_MIN或是UPPERCASE");
- }
-
this.jtc=jtc;
-
this.task=task;
-
this.needMessage=needMessage;
-
this.min=min;
-
this.max=max;
- }
-
-
publicJTextHelp
(JTextComponentjtc,inttask,intmin,intmax){
-
if(task!
=NUMBER&&task!=LOWERCASE&
- &nbs
p;task!=UPPERCASE&&task!=IPv4CHECK&&task!=STRICT_NUMBER&&task!=MAX_MIN)
{
-
&nbs
p;thrownewIllegalArgumentException("JTextHelp的任务只能
是:"+
-
&nbs
p;"NUMBER,
STRICT_NUMBER,IPv4CHECK,LOWERCASE,MAX_MIN或是UPPERCASE");
- }
-
this.jtc=jtc;
-
this.task=task;
-
this.min=min;
-
this.max=max;
- }
-
-
publicJTextHelp(){}
-
-
-
publicvoidinsertCheck(){
-
switch
(task){
-
caseNUMBER:{
-
jtc.
setDocument(newJNumber());
-
};break;
-
caseSTRICT_NUMBER:{
-
jtc.setDoc
ument(newJStrictNumber());
-
};break;
-
caseUPPERCASE:{
-
jtc.
setDocument(newLetterCaseConvert
(LetterCaseConvert.UPCASE));
-
};break;
-
caseLOWERCASE:{
-
jtc.setDoc
ument(newLetterCaseConvert(LetterCaseConvert.LOWERCASE));
-
};break;
-
caseIPv4CHECK:{
-
jtc.
setInputVerifier(newMyInputVerifier(JTextHelp.IPv4CHECK));
-
};break;
-
caseMAX_MIN:{
-
jtc.setInp
utVerifier(newMyInputVerifier(JTextHelp.MAX_MIN,min,max));
-
};break;
- }
- }
-
-
-
classJStrictNumberextendsPlainDocument{
-
-
privatestaticfinallongserialVersionUID=2049L;
-
-
-
-
publicvoidinsertString(intoffs,Stringstr,AttributeSeta)throwsBadLocationException{
-
charsource[]=str.toCharArray();
-
charresult[]=newchar[source.length];
-
message="错误的录入,系统仅接受数字的录入,请检查你的输入!";
-
intj=0;
-
for(inti=0;i<source.length;i++){
-
&nbs
p;if(Character.isDigit(source[i])){
- &nbs
p;result[j++]=source[i];
-
&nbs
p;}else{
-
&nbs
p;if(needMessage){
-
&nbs
p;JOptionPane.showMessageDialog(null,message,
-
&nbs
p;"信息提示",JOptionPane.ERROR_MESSAGE);
-
&nbs
p;}else
- &nbs
p;{
- &nbs
p;Toolkit.getDefaultToolkit().beep();
- &nbs
p;}
-
&nbs
p;return;
- }
- }
-
super.insertString(offs,newString
(result,0,j),a);
- }
- }
-
-
classJNumberextendsPlainDocument{
-
-
privatestaticfinallongserialVersionUID=2049L;
-
-
publicvoidinsertString(intoffs,Stringstr,AttributeSeta)throwsBadLocationException{
-
charsource[]=str.toCharArray();
-
charresult[]=newchar[source.length];
-
intj=0;
-
for(inti=0;i<source.length;i++){
- if((source[i]=='-')
&&jtc.getCaretPosition()==0&&countMinus(jtc.getText())
==0){
- &nbs
p;result[j++]=source[i];
-
}
elseif(Character.isDigit
(source[i])){
- &nbs
p;result[j]=source[i];
- &nbs
p;j++;
-
}
elseif(source[i]=='.'&&countDot(jtc.getText())==0)
{
- &nbs
p;result[j++]=source[i];
-
}
else{
-
&nbs
p;if(needMessage){
-
&nbs
p;JOptionPane.showMessageDialog(null,"错误的录入,系统仅接受数字(含小数和负数)的录
入,"+
-
&nbs
p;"请检查你的输入!","信息提
示",JOptionPane.ERROR_MESSAGE);
-
&nbs
p;}else{
- &nbs
p;Toolkit.getDefaultToolkit().beep();
- &nbs
p;}
-
&nbs
p;return;
- }
- }
-
super.insertString(offs,newString
(result,0,j),a);
- }
- }
-
-
classLetterCaseConvertextendsPlainDocument{
-
-
privatestaticfinalintUPCASE=1;
-
privatestaticfinalintLOWERCASE=2;
-
-
privatestaticfinallongserialVersionUID=2049L;
-
-
privateintchan=0;
-
-
publicLetterCaseConvert(intchan)
{
-
this.chan=chan;
- }
-
-
publicvoidinsertString(intoffs,Stringstr,AttributeSeta)throwsBadLocationException{
-
Stringresult=null;
-
if(chan==LetterCaseConvert.UPCASE){
- result=str
.toUpperCase();
- super.insertString(offs,result,a);
-
}elseif(chan==LetterCaseConvert.LOWERCASE)
{
- resu
lt=str.toLowerCase();
-
<sp an class="keyword">super<span>.insertString(offs,result,a);</span></sp>
- }
- }
- }
-
-
-
classMyInputVerifierextendsInputVerifier{
-
privateJTextComponentjc;
-
privatefloattask=0;
-
privatefloatmin,max;
-
publicMyInputVerifier(inttask)
{
-
this.task=task;
- }
-
publicMyInputVerifier(inttask,floatmin,floatmax){
-
this.task=task;
-
this.max=max;
-
this.min=min;
- }
-
publicbooleanverify
(JComponentarg0){
-
booleanrValue=false;
- jc=(JTextComponent)
arg0;
-
if(jc.getText().equals(""))
- returntrue;
-
if(task==JTextHelp.IPv4CHECK){
- rVal
ue=checkIP(jc.getText());
-
<sp an class="keyword">if<span>(!rValue){</span></sp>
-
&nbs
p;JOptionPane.showMessageDialog(null,"输入的IP地址不合法,请检查你的输入!","信息提
示",JOptionPane.ERROR_MESSAGE);
-
&nbs
p;returnfalse;
- }
- }
-
if(task==JTextHelp.MAX_MIN){
-
<sp an class="keyword">try<span>{</span></sp>
-
&nbs
p;intvalue=Integer.parseInt(jc.getText
());
-
&nbs
p;if(value>=min&&value<=max)
-
&nbs
p;rValue=true;
-
&nbs
p;else{
-
&nbs
p;JOptionPane.showMessageDialog(null,"此处数据被限制在"+String.valueOf
(this.min)+
-
&nbs
p;
"-"+String.valueOf(this.max)
+"之间(含这两个数),请检查输入!","信息提
示",JOptionPane.ERROR_MESSAGE);
-
&nbs
p;rValue=false;
- &nbs
p;}
-
}
catch(NumberFormatExceptione){
-
&nbs
p;JOptionPane.showMessageDialog(null,"
错误的录入,请检查你的输入!"+e.getMessage(),"信息提
示",JOptionPane.ERROR_MESSAGE);
-
&nbs
p;rValue=false;
- }
- }
-
returnrValue;
- }
- }
-
-
-
publicintcountDot(Stringstr){
-
intcount=0;
-
charstrChar[]=str.toCharArray();
-
for(inti=0;i<strChar.length;i++)
-
if(strChar[i]=='.'){
- count++;
SPAN>
- }
-
returncount;
- }
-
-
publicintcountMinus(Stringstr){
-
intcount=0;
-
charstrChar[]=str.toCharArray();
-
for(inti=0;i<strChar.length;i++)
-
if(strChar[i]=='-'){
- count++;
SPAN>
- }
-
returncount;
- }
-
-
publicbooleancheckIP(Stringstr){
-
intdot[]
=newint[4];
- Stringtmp1,tmp2,tmp3,tmp4;
-
-
-
if
(str.startsWith("."))
-
returnfalse;
-
if
(str.lastIndexOf(".")==(str.length()-1))
-
returnfalse;
-
if
(str.length()>15)
-
returnfalse;
-
if
(countDot(str)!=3)
-
returnfalse;
-
-
-
for(inti=0;i<3;i++){
-
dot[i+1]=str.indexOf(".",dot[i]+1);
- }
-
tmp1=str.substring(dot[0],dot[1]);
-
tmp2=str.substring(dot[1]+1,dot[2]);
-
tmp3=str.substring(dot[2]+1,dot[3]);
-
tmp4=str.substring(dot[3]+1,str.length());
-
try
{
-
inta1=Integer.parseInt(tmp1);
-
inta2=Integer.parseInt(tmp2);
-
inta3=Integer.parseInt(tmp3);
-
inta4=Integer.parseInt(tmp4);
-
if(a1<0||a1>255||a2<0||a2>255||a3<0||a3>255||a4<0||a4>255)
- returnfalse;
-
returntrue;
-
}catch
(NumberFormatExceptionnfe){
-
returnfalse;
- }
- }
- }
分享到:
相关推荐
实现了对文本控件类录入限制,可以只能输入数值或是数字,或是IP地址检查,有关情况可以访问我的blog:http://blog.csdn.net/QB2049_XG/archive/2008/09/26/2984645.aspx,查看是否值得下载。
在提供的压缩文件“java小程序之学生信息界面”中,包含了这个项目的源代码和资源文件。通过阅读和分析这些代码,你可以更深入地理解如何利用Java Swing和Windows Builder构建用户界面,以及如何实现简单的数据处理...
随着信息技术的广泛应用和在...这个简单的文本编辑器软件—学生信息录入,主要是将学生的信息录入并且显示出来。本程序主要是通过使用JAVA中的一些控件来实现功能按钮。通过事件的响应来实现各框架,各按钮间的功能实现
1.本书1~21章所附代码的运行环境 操作系统:Windows 2003、Windows XP Professional,或者Windows 2000 开发环境:UltraEdit12.10a、eclipse-jee-europa Web浏览器:Microsoft Internet Explorer 6.0及以上版本 ...
3. **源代码**:源代码是程序员用高级语言编写的程序文本,是程序的原始形式。在VB工资管理系统中,源代码是理解系统工作原理的关键,学习者可以通过阅读源代码,了解如何使用VB实现特定的业务逻辑和数据库操作。 4...
1. **源代码**:源代码是程序员用VB编写的程序文本,它包含了各种函数、类、控件和事件处理程序,用于实现系统的各项功能。在VB中,开发者可以利用窗体(Forms)、控件(Controls)和模块(Modules)来构建用户界面...
该资料是《Visual C++ 2005入门经典》的源代码及课后练习答案 对应的书籍资料见: Visual C++ 2005入门经典 基本信息 原书名: Ivor Horton's Beginning Visual C++ 2005 原出版社: Wiley 作者: (美)Ivor Horton...
`JFrame`上可以添加各种组件,如`JTable`用于显示学生信息,`JLabel`用于文本提示,`JButton`用于执行操作,以及`JTextField`和`JComboBox`等输入控件用于数据录入。 对于学生信息的展示,项目可能使用了`JTable`...
1. **源码**:提供了编辑网格控件的实现代码,可能是用C#、Java、JavaScript等语言编写,供开发者学习和二次开发使用。 2. **示例**:包含了一些使用编辑网格控件的实际案例,演示了如何在实际项目中集成和使用该...
源代码和论文的提供意味着该系统已经经过了完整的开发流程,有助于学习者理解和模仿。 以上就是VB工资管理系统设计与实现中的核心知识点。通过学习和实践,开发者不仅可以掌握VB编程技能,还能深入了解管理信息系统...
- **题目解析**:Java源代码文件编译后的字节码文件的扩展名为`.class`。 - **知识点拓展**: - Java编译过程。 - 字节码的作用。 - Java虚拟机(JVM)的概念。 #### 9. Java保留字 - **题目解析**:保留字是指...
二维码扫码是一种常见的数据录入方式,它通过图像识别技术将二维条形码中的信息解码为可读的文本或数字。在IT行业中,二维码被广泛应用于移动支付、产品追溯、信息分享等领域。Zxing(ZXing,发音为 "zebra crossing...
1. **源代码与字节码文件对应关系**:Java 编译器会为源代码文件中定义的每个类生成一个对应的 `.class` 文件。 ### Word 文档编辑 1. **字符删除操作**:在 Word 中,默认情况下,使用 `Delete` 键删除插入点右侧...
数据源SDK源代码:这些源代码用于帮助开发人员生成加载报表数据用的XML数据文本,它们可以由开发人员根据项目的需要自由修改。目前提供语言版本包括:Delphi,VS.Net C#,Java。 帮助文档:微软标准CHM帮助文件,...
在【源代码】文件中,我们可以看到实现上述功能的具体VB代码。通过对这些代码的分析和学习,可以深入理解VB的编程原理,以及如何利用VB来开发实际应用。此外,对于初学者来说,这是一个很好的实践项目,可以帮助他们...
### 计算机二级等级考试知识点解析 #### 操作系统与语言处理系统 - **操作系统**:是指管理和控制计算机硬件与软件资源的计算机程序。它为用户提供了一个与计算机硬件交互的界面,并负责管理计算机的各种资源(如...
- 源代码文件(Java或Kotlin),包括Activity、Fragment、Adapter和自定义View的实现。 - 资源文件(XML布局文件、图片资源、字符串资源等),用于构建UI界面和表情面板。 - 资源库依赖(如Gradle配置文件),可能...
程序可以是用高级编程语言编写的源代码,也可以是经过编译或解释后的机器码。程序是实现计算机功能的基础。 #### 知识点5:C语言程序设计 **题目描述:** 以下程序的输出结果是什么? ```c #include main() { int...
### 计算机二级等级考试知识点解析 #### 1. 计算机病毒传播途径 - **知识点**:计算机病毒的传播方式主要包括两种途径:**计算机网络**和**磁性存储介质**。 - **解析**:计算机病毒可以通过互联网、局域网等网络...
非结合型控件不直接关联到任何数据源,常用于显示固定文本或图片,或作为用户输入的接收器。 ### 26. Java 字符串操作 **知识点**:字符串变量不能直接访问 length 属性。 **详细解释**:在 Java 中,字符串是一个...