在不赋值时显示空格。
不显示tip。谢谢.

解决方案 »

  1.   

    public static void setFieldAtNumberRangeAllowed(final JTextComponent field,final int minValue,final int maxValue)
        {
            
            field.addCaretListener(new CaretListener()
                    {
                
                public void caretUpdate(CaretEvent e)
                {
                    try
                    {
                        int value = Integer.parseInt(field.getText());                    if(value > minValue && value < maxValue)
                        {
                           //-----DONOTHING-----
                        }
                        else
                        {
                            System.out.println("input must between "+minValue+" ~ "+maxValue);
                        }
                    }
                    catch(Throwable ex)
                    {
                        System.out.println("need input integer value");
                    }
                }});
        }把System.out.println都替换成有用的操作就好了。
      

  2.   

    控制文本输入,本人觉得最好是自定义一个Document对象,在insertString方法中控制class NumberDocument extends PlainDocument{
      int min;
      int max;   public NumberDocument(int mi,int ma)
    {
        min = mi;
        max = ma;
    }
      
    //重载Document的插入文本的方法
      public void insertString(int offset;String s,AttributSet as)
    {
    try
    {
                        int value = Integer.parseInt(s);                    if(value > min && value < max)
                        {
                            super.insertString(offset,s,as);
             }
                                        }
                    catch(Throwable ex)
                    {
                         
                    }}}按如下使用应该就可以了:
    jTextComponent.setDocument(new NumberDocument(min,max));
      

  3.   

    独立出来直接使用
    public class NumberField extends JPane 
    {
    private JTextField numberField = null;
    private int min;
    private int max;

    public NumberField(Container c,int min,int max)
    {
    numberField = new NumberField(10);
    this.min = min;
    this.max = max;

    numberField.addCaretListener(new CaretListener(){

    public void caretUpdate(CaretEvent e)
    {
    try
    {
    int value = Integer.parseInt(field.getText());

    if(value > minValue && value < maxValue)
    {
    //-----DONOTHING-----
    }
    else
    {
     System.out.println("input must between "+minValue+" ~ "+maxValue);
    }
    }
    catch(Throwable ex)
    {
    System.out.println("need input integer value");
    }
    }
    });

    c.add(numberField);
    }
    }