自己写个类,扩展PlainDocument
如public class test extends PlainDocument
自己写insertString(int offset,String s ,AttributeSet attr)方法
在这个方法中判断如果是数字以外的字符不处理
textfield.setDocument(new test());
如public class test extends PlainDocument
自己写insertString(int offset,String s ,AttributeSet attr)方法
在这个方法中判断如果是数字以外的字符不处理
textfield.setDocument(new test());
a = '0123456789';
if(ss.indexOf(a) == -1)
alert("请输入数字");
}注意这里ss只能是耽搁的字符.如果是多个字需要加个循环.
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;public class LimitedDocument extends PlainDocument { private int _maxLength = -1; private String _allowCharAsString = null;
public LimitedDocument(){
super();
} public LimitedDocument( int maxLength ){
super();
this._maxLength = maxLength;
} public void insertString( int offset, String str, AttributeSet attrSet)
throws BadLocationException{ if(str == null) {
return;
} if(_allowCharAsString != null && str.length() == 1) {
if(_allowCharAsString.indexOf(str) == -1){
return;
}
} char[] charVal = str.toCharArray();
String strOldValue = getText(0, getLength());
byte[] tmp = strOldValue.getBytes(); if(_maxLength != -1 && (tmp.length + charVal.length > _maxLength)){
return;
} super.insertString(offset, str, attrSet);
} public void setAllowChar(String str) {
_allowCharAsString = str;
}
}使用时: LimitedDocument ld = new LimitedDocument(8);//参数为能输入的最大长度
ld.setAllowChar("0123456789");//只能输入的字符 jTextField.setDocument(ld);//运用到文本框中
class MainFrame_jTextField1_keyAdapter extends java.awt.event.KeyAdapter
{
MainFrame adaptee; MainFrame_jTextField1_keyAdapter(MainFrame adaptee)
{
this.adaptee = adaptee;
}
public void keyTyped(KeyEvent e)
{
adaptee.jTextField1_keyTyped(e);
}
} void jTextField1_keyTyped(KeyEvent e)
{
//这里是关键
int temp = e.getKeyChar();
if(temp==10)//按回车时
{ }
else if(temp!=46)//没有按小数点时
{
if(temp!=8)//没有按backspace时
{
//下面检查是不是在0~9之间;
if (temp > 57)
{
e.consume();//如果不是则消除key事件,也就是按了键盘以后没有反应;
}
else if (temp < 48)
{
e.consume();
}
}
}
}
楼主要留数字啊:)其实这种方式下,如果是用ctrl+c,v方法拷贝来的东西,你是无法把关的。
JDK1.4
自己看