你可以通过按键加上TextField的值的变化来监听。

解决方案 »

  1.   

    这个还是用KeyListener来监听按键事件比较好!
      

  2.   

    谢谢楼上的,
              不知道你看出来没有,我就是刚才问字符串问题的那个小子,问一下是实现ActionListener接口后,在给TextField添加addKeyListener方法吗?
      

  3.   

    下面是只输入数字的JTextField的例子,作参考先:import javax.swing.*;
    import javax.swing.text.*;
    import java.awt.*;public class JNumberField extends JTextField
    {
    private numDoc doc = null;    public JNumberField()
        {
            super(3);
            setDocument( doc = new numDoc());
        }
        public JNumberField(int maxLen)
        {
            super();
            setDocument( doc = new numDoc(maxLen));
        } public void setMaxLen( int maxLen ) {
    doc.setMaxLen( maxLen );
    } public int getMaxLen() {
    return doc.getMaxLen();
    } public static void main( String args[] ) {
    JFrame f = new JFrame("Only input number characters" );
    f.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
    Container c = f.getContentPane();
    JNumberField test;
    c.add( test = new JNumberField(),BorderLayout.NORTH );
    c.add( new JNumberField(),BorderLayout.CENTER );
    c.add( new JNumberField( 10 ),BorderLayout.SOUTH );
    test.setMaxLen( 5 );
    f.pack();
    f.show();
    }
    }class numDoc extends PlainDocument
    {
    int maxLength = 3;

    public numDoc(){} public numDoc(int maxLen)
    {
    maxLength = maxLen;
    } public void setMaxLen( int maxLength ) {
    this.maxLength = maxLength;
    } public int getMaxLen() {
    return maxLength;
    } public void insertString( int offset,String s,AttributeSet a ) throws BadLocationException //你可以在这里进行修改以适合你的要求
    {
    int len = getLength();
    String str  =getText(0,len);
    if ( (str+s).length() > maxLength
    || ( str.trim().equals("0") && !s.substring(0,1).equals(".") && offset != 0 )
    )
    {    
        Toolkit.getDefaultToolkit().beep();
        return;
    }
    try
    {
    Integer.parseInt( str+s );
    }
    catch ( Exception e )
    {
    Toolkit.getDefaultToolkit().beep();
        return;
    }
    super.insertString(offset,s,a);
    }
    }