自己写个类,扩展PlainDocument
如public class test extends PlainDocument
自己写insertString(int offset,String s ,AttributeSet attr)方法
在这个方法中判断如果是数字以外的字符不处理
textfield.setDocument(new test());

解决方案 »

  1.   

    用javascript就可以实现function check( var ss){
        a = '0123456789';
        if(ss.indexOf(a) == -1)
           alert("请输入数字");
    }注意这里ss只能是耽搁的字符.如果是多个字需要加个循环.
      

  2.   

    不好意思我以为是在网页中没想到你是在APPLET里,嘿~~~~~~
      

  3.   

    copy来的一段忘了谁的代码import javax.swing.text.AbstractDocument;
    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);//运用到文本框中
      

  4.   

    jTextField.getText().matches("^[0-9]$");
      

  5.   

    嘿嘿。我今天刚刚做。加入监听事件就可以了。代码给你吧。
    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();
                    }
                }
            }
        }
      

  6.   

    to:yangtaylor(水无月烈火) 
    楼主要留数字啊:)其实这种方式下,如果是用ctrl+c,v方法拷贝来的东西,你是无法把关的。
      

  7.   

    JFormattedTextField
    JDK1.4
    自己看