jTextField.getDocument().addDocumentListener(
new javax.swing.event.DocumentListener()
{
public void changedUpdate(DocumentEvent e)
{
String s = jTextField.getText().trim();
} public void insertUpdate(DocumentEvent e)
{
String s = jTextField.getText().trim();
} public void removeUpdate(DocumentEvent e)
{
String s = jTextField.getText().trim();
}
});

解决方案 »

  1.   

    参考一下:http://zhidao.baidu.com/link?url=Hk2cdzyivP-22GXn6BT3jHhgV0GkWAKtr3ZG9iKuJNbEY_0SUKemMPayogyY5UYjhkbgpHutjG77mKkcsq2T6q
      

  2.   

    使用JSpinner就可以了。没必要那么费事定制JTextField
      

  3.   

    那如何将这段代码改成跟我现在写的监听是否为数字这个类似呢?就是如果输入的数据是在1-10之外,就把文本框置空
    .addKeyListener(new  KeyListener()
        {

        public void keyTyped(KeyEvent e)
        {
        
            if((e.getKeyChar() <48 ||e.getKeyChar()>57)&&e.getKeyChar()!='\b')
            {
                e.setKeyChar('\0');
            }
        }
        public void keyPressed(KeyEvent e){}
        public void keyReleased(KeyEvent e){}
    });
      

  4.   

    package csdn.examples.ui;import java.awt.BorderLayout;
    import java.awt.EventQueue;
    import java.util.regex.Pattern;import javax.swing.JFrame;
    import javax.swing.JSpinner;
    import javax.swing.JTextField;
    import javax.swing.SpinnerNumberModel;
    import javax.swing.SwingConstants;
    import javax.swing.text.AttributeSet;
    import javax.swing.text.BadLocationException;
    import javax.swing.text.PlainDocument;public class JTextFiledExample
    {
        
        private static class TDocument extends PlainDocument
        {
            private static final long    serialVersionUID = -1L;
            private static final Pattern pattern          = Pattern.compile("\\d{1,2}");
            
            @Override
            public void insertString(final int offset, final String input, final AttributeSet as)
                    throws BadLocationException
            {
                if (!pattern.matcher(input).matches()) { return; }
                final String text = getText(0, getLength()).concat(input);
                final int number = Integer.valueOf(text);
                if (number > 0 && number < 11)
                {
                    super.insertString(offset, input, as);
                }
                else
                {
                    return;
                }
            }
            
        }
        
        /**
         * @param args
         */
        public static void main(final String[] args)
        {
            EventQueue.invokeLater(new Runnable() {
                
                @Override
                public void run()
                {
                    final JFrame frame = new JFrame("Only 1-10 can be inputted");
                    final JTextField input = new JTextField(new TDocument(), "", 2);
                    input.setHorizontalAlignment(SwingConstants.RIGHT);
                    frame.add(input);
                    final JSpinner spinner = new JSpinner(new SpinnerNumberModel(1, 1, 10, 1));
                    frame.add(spinner, BorderLayout.PAGE_END);
                    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                    frame.setLocationRelativeTo(null);
                    frame.pack();
                    frame.setVisible(true);
                }
            });
        }
    }