我现在想控制一个jFormattedTextField的输入 
只允许输入一个数字,或者多个数字,用,分割。 
如:11 
11,22 
1,3333,1 请问怎么实现? 
个人认为要用到正则表达式,MaskFormatter类好像没办法实现我的要求。 有人能帮忙解决吗?最好能给代码,谢谢

解决方案 »

  1.   

    substring可以获得指定位置的字符
    你加上你自己的条件来进行判断substring通常在日期格式判断中使用较多
    YYYY-MM-DD
    substring(0,5)
    substring(5,7)
    substring(8,10) 比最后一个字符位置的大 1 位
      

  2.   

    谢谢楼上的回答,不过你并没有帮我解决我的问题
    我想要的是jFormattedTextField这个组件自动的来过滤不合法的数据,而不是每次输入都要求我自己写段代码来验证
      

  3.   

    formatter = new MaskFormatter("##,####,###");
    JFormattedTextField test = new JFormattedTextField(formatter);
      

  4.   

    楼上的答案并不是我想要的
    如果按照你这样写的话,那么这个jFormattedTextField里填写的东西就定死了
    比如
    11,1111,111
    但是我的需求是
    即可以填写1 也可以填写1,11 也可以填写1,1,11,1等等。  
    填写的东西只有规律内容不定
      

  5.   

    现在的年头,凡事只能靠自己。什么高手牛人都是假的DefaultFormatter df = new DefaultFormatter()
    {
        public Object stringToValue(String string) throws ParseException
        {
              if(string != null && string.length()>0)
              {
                   if(string.matches("\\d+(,\\d+)*"))
                   {
                        return string;
                   }
                   else
                   {
                        throw new ParseException("",0);
                   }
              }
              else
              {
                     return "";
              }
         }
         public String valueToString(Object value) throws ParseException
         {
               if(value != null)
               {
                    return value.toString();
               }
               else
               {
                    return "";
               }
         }
    };
    JFormattedTextField jtf = new JFormattedTextField(df);