本文介绍的源代码内容需要
配合这篇文章的第一篇一起,点击文本控件内容录入限制(含源代码说明)(一)查看,所有的源代码可以在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生成自定义控件源代码
本源代码包括:TestJTwain.java,...src.jar里面,所有的.class文件都封装在demo.jar里面,只要当做.rar文件解压就可以看到源代码,此控件不用安装,运行LaunchDemo.bat,就能调用计算机里面的所有twain扫描设备源!
基于java的开发源码-生成自定义控件源代码.zip 基于java的开发源码-生成自定义控件源代码.zip 基于java的开发源码-生成自定义控件源代码.zip 基于java的开发源码-生成自定义控件源代码.zip 基于java的开发源码-生成...
基于java的开发源码-日期选择控件完整源代码.zip 基于java的开发源码-日期选择控件完整源代码.zip 基于java的开发源码-日期选择控件完整源代码.zip 基于java的开发源码-日期选择控件完整源代码.zip 基于java的开发...
(安卓APP项目源代码)数字标识控件(安卓APP项目源代码)数字标识控件(安卓APP项目源代码)数字标识控件(安卓APP项目源代码)数字标识控件(安卓APP项目源代码)数字标识控件(安卓APP项目源代码)数字标识控件(安卓APP...
文本编辑控件DotNetTextBox使用帮助及源代码
Visual C++源代码 174 如何设置水晶报表显示控件外观Visual C++源代码 174 如何设置水晶报表显示控件外观Visual C++源代码 174 如何设置水晶报表显示控件外观Visual C++源代码 174 如何设置水晶报表显示控件外观...
(Visual C++编程 源代码)2.如何使用标签控件?(Visual C++编程 源代码)2.如何使用标签控件?(Visual C++编程 源代码)2.如何使用标签控件?(Visual C++编程 源代码)2.如何使用标签控件?(Visual C++编程 源...
java源码:Java生成自定义控件源代码.rar
真正无控件摄像头程序-精品源代码 真正无控件摄像头程序-精品源代码
String theDay new datePicker getTheDay ;在控件关闭或退出时将返回选中的日期
Java生成自定义控件源代码.zip
二, 该控件没有源代码。(DatePicker.java除外,这个是我加进去的) 三, 该控件可以用于你的个人作品中。 详情请看 http://hi.baidu.com/ccutshyhao/blog/item/e3da95d79fb28a2706088b4c.html
Java日期选择控件完整源代码.zip
Java生成自定义控件源代码.rar
这个动画文本控件源代码有点类似 Flash文字特效,唯一的是这个控件完全VB代码,没有其他第三方资源,可以同屏显示多种文字特效,如水平文字滚动、垂直文字滚动、旋转文字、文字颜色变换旋转、文字大小缩放。控件运行...
Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...