用ascii来判断,只接受0--9的ascii,其余的屏蔽掉

解决方案 »

  1.   

    jTextField.setDocument(new NumberDocument());class NumberDocument extends PlainDocument{
        public void insertString(int offset,String s,AttributeSet attributeSet)throws BadLocationException {
          try{
            if(!s.equals (".") && !s.equals ("-")){
              Integer.parseInt(s,10);
            }
            String src=this.getText (0,this.getLength ());
            Double.parseDouble (src.substring (0,offset)+s+src.substring (offset,src.length ()));
          }
          catch(Exception ex){
            Toolkit.getDefaultToolkit().beep ();
            return;
          }
          super.insertString (offset,s,attributeSet);
        }
      }
      

  2.   

    楼上的那个程序有个Bug:
      jTextField.setDocument(new NumberDocument(),"0.101",5); 
    这样子给值会有错误,也就是不能用jtextField.setText()给值. 
      

  3.   

    To wolfsquare(狼平方):
        Thank you very much.