用TextListener。
如果JTextField中的内容改变。
则会调用textValueChanged函数
再判断一下JTextField中的值是否满足要求
如不满足,则改变它的内容

解决方案 »

  1.   

    JTextField textArea = new JTextField() ;
    textArea.getDocument().addDocumentListener( new DocumentListener() 
    {
    public void insertUpdate(DocumentEvent event) //插入(包括末尾插入)
    {
          bContentChanged = true ; 
    }
              
    public void removeUpdate(DocumentEvent event)  //删除
    {
          bContentChanged = true ;   
    }
              
    public void changedUpdate(DocumentEvent event)  { } 
    } ) ;  //文本域内容是否改变监视器
      

  2.   

    keyPress  事件 监听。
      

  3.   

    它有个:当值改变时的 事件 监听。看一看,API吗!!!!
      

  4.   

    hfree()同学:这样是不行的.....public void insertUpdate(DocumentEvent event); //插入(包括末尾插入)
    public void removeUpdate(DocumentEvent event);  //删除上面这两个方法是在Document的DocumentEvent事件触发后才会调用的,
    然而在这两个方法里面不可以修改jtxtField的值的,否则会有异常.
     mengxianwei007(斩不断<==>理还乱) 同学:jtxtField的值改变不一定会触发key事件的.
      

  5.   

    請參閱JFormattedTextField,這個類就是專門為你設計的.
    不過有點麻煩,建議你耐心點看.
    我以前為了解決只允許輸入整數的問題看過一段時間,不過實在是麻煩.
      

  6.   

    你认为这样可以吗?比如说里面只允许出现奇数,不能出现偶数....:::“你的要求”
    public void insertString(int offs, String str, AttributeSet attr) throws
                    BadLocationException {
                char c=str.charAt(0);
                if((c=='1') || (c=='3') || (c=='5')|| (c=='7')|| (c=='9'))
                {
                   try{super.insertString(offs, new String(input, 0, length), attr);}
                   catch(BadLocationException e){}
                }
                   catch(BadLocationException e){}
                   return;
                }
    我的意思明白了吗?
    就是在插入的时候进行判断如果服合你的要求就插,要不然就不退出insterString函数
    你可以写一个PlainDocument的子类
    在其子类中重写insterString函数,OK。
      

  7.   

    你认为这样可以吗?比如说里面只允许出现奇数,不能出现偶数....:::“你的要求”
    public void insertString(int offs, String str, AttributeSet attr) throws
                    BadLocationException {
                char c=str.charAt(0);
                if((c=='1') || (c=='3') || (c=='5')|| (c=='7')|| (c=='9'))
                {
                   try{super.insertString(offs, new String(input, 0, length), attr);}
                   catch(BadLocationException e){}
                }
                   catch(BadLocationException e){}
                   return;
                }
    我的意思明白了吗?
    就是在插入的时候进行判断如果服合你的要求就插,要不然就不退出insterString函数
    你可以写一个PlainDocument的子类
    在其子类中重写insterString函数,OK。
      

  8.   

    core java上的方法虽然简单,但是安全性并不好