当前位置: 技术问答>java相关
急,急....怎样设定TextField的掩码形式?
来源: 互联网 发布时间:2015-01-12
本文导语: 高手们,请赐教:如何定义TextField的掩码形式? | 给一个Date public class PaneJTextDate extends PlainDocument { public static String initString="####-##-##"; private static int sep1=4, sep2=7; private...
高手们,请赐教:如何定义TextField的掩码形式?
|
给一个Date
public class PaneJTextDate extends PlainDocument {
public static String initString="####-##-##";
private static int sep1=4, sep2=7;
private static int month1=5,month2=6;
private static int day1=8,day2=9;
private JTextComponent textComponent;
private int newOffset;
public PaneJTextDate(JTextComponent tc) {
textComponent=tc;
try {
insertString(0,initString,null);
} catch (Exception ex) {}
}
public void insertString(int offset,String s, AttributeSet attributeSet ) throws BadLocationException {
int iTemp;
if(s.equals(initString) ) {
super.insertString(offset,s , attributeSet);
} else {
if(s.length()>1) {
if(s.length()!=10) return;
} else {
try {
iTemp=Integer.parseInt(s);
if(offset==month1 || offset==month1-1)
if(iTemp>1) return;
if(offset==day1 || offset==day1-1)
if(iTemp>3) return;
} catch (Exception ex) {
return;
}
}
newOffset=offset;
if(atSeparator(offset)) {
newOffset++;
textComponent.setCaretPosition(newOffset);
}
super.remove(newOffset,s.length());
super.insertString(newOffset,s,attributeSet);
} // end if ( !=initString)
} // end method insertString()
public void remove(int offset,int length) throws BadLocationException {
if(atSeparator(offset)) {
super.remove(offset-1,1);
super.insertString(offset-1,"0",null);
textComponent.setCaretPosition(offset-1);
} else {
super.remove(offset,1);
super.insertString(offset,"0",null);
textComponent.setCaretPosition(offset);
}
}//end method remove()
private boolean atSeparator(int offset) {
return offset==sep1 || offset==sep2;
}
} // end class PaneJTextDate()
public class PaneJTextDate extends PlainDocument {
public static String initString="####-##-##";
private static int sep1=4, sep2=7;
private static int month1=5,month2=6;
private static int day1=8,day2=9;
private JTextComponent textComponent;
private int newOffset;
public PaneJTextDate(JTextComponent tc) {
textComponent=tc;
try {
insertString(0,initString,null);
} catch (Exception ex) {}
}
public void insertString(int offset,String s, AttributeSet attributeSet ) throws BadLocationException {
int iTemp;
if(s.equals(initString) ) {
super.insertString(offset,s , attributeSet);
} else {
if(s.length()>1) {
if(s.length()!=10) return;
} else {
try {
iTemp=Integer.parseInt(s);
if(offset==month1 || offset==month1-1)
if(iTemp>1) return;
if(offset==day1 || offset==day1-1)
if(iTemp>3) return;
} catch (Exception ex) {
return;
}
}
newOffset=offset;
if(atSeparator(offset)) {
newOffset++;
textComponent.setCaretPosition(newOffset);
}
super.remove(newOffset,s.length());
super.insertString(newOffset,s,attributeSet);
} // end if ( !=initString)
} // end method insertString()
public void remove(int offset,int length) throws BadLocationException {
if(atSeparator(offset)) {
super.remove(offset-1,1);
super.insertString(offset-1,"0",null);
textComponent.setCaretPosition(offset-1);
} else {
super.remove(offset,1);
super.insertString(offset,"0",null);
textComponent.setCaretPosition(offset);
}
}//end method remove()
private boolean atSeparator(int offset) {
return offset==sep1 || offset==sep2;
}
} // end class PaneJTextDate()
|
JTextField不能设定掩码,
请使用JClass组件,可以轻松完成掩码的设置
请使用JClass组件,可以轻松完成掩码的设置
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。