沙漠中的魚

          欲上天堂,先下地獄
          posts - 0, comments - 56, trackbacks - 0, articles - 119
            BlogJava :: 首頁 ::  :: 聯系 :: 聚合  :: 管理

          JSpinner控制輸入

          Posted on 2009-03-16 22:40 沙漠中的魚 閱讀(1918) 評論(2)  編輯  收藏 所屬分類: Java

          最近用到JSpinner,但是不能控制用戶輸入。
          比如使用SpinnerNumberModel,雖然設置了min,max,但是還是可以輸入超出范圍的數值,還可以輸入字母,這些都應該是屏蔽掉的。
          采用了下面的方法來解決:

             JSpinner spinner = new JSpinner(new SpinnerNumberModel(value, min, max, 1));
             spinner.setBounds(x,y,width,height);
             // 控制輸入
             JSpinner.NumberEditor editor = new JSpinner.NumberEditor(spinner, "0");
             spinner.setEditor(editor);
             JFormattedTextField textField = ((JSpinner.NumberEditor) spinner.getEditor())
               .getTextField();
             textField.setEditable(true);
             DefaultFormatterFactory factory = (DefaultFormatterFactory) textField
               .getFormatterFactory();
             NumberFormatter formatter = (NumberFormatter) factory.getDefaultFormatter();
             formatter.setAllowsInvalid(false);
             add(spinner);
           
          這樣輸入就不可以輸入字母了,因為設置了輸入格式。超過范圍的數值也是輸入不進去的。
          其他的格式都應該是類似的吧,呵呵。
          只不過這里用的是NumberFormatter ,還有其他類型的。

           

          轉載:http://yangke1120.spaces.live.com/blog/cns!77b62010246eabc6!168.entry


          評論

          # re: JSpinner控制輸入  回復  更多評論   

          2010-09-08 12:40 by 路過人
          遇到同樣問題,搜了半天,終于搜到了,非常感謝!

          # re: JSpinner控制輸入  回復  更多評論   

          2011-07-06 13:48 by illusion
          十分感謝!!!
          主站蜘蛛池模板: 鄂尔多斯市| 本溪市| 双峰县| 红河县| 武汉市| 西吉县| 沅江市| 台南县| 宾川县| 喀什市| 锦州市| 永吉县| 淳安县| 依兰县| 兰西县| 伊春市| 青浦区| 洮南市| 葫芦岛市| 怀化市| 紫金县| 莱阳市| 平泉县| 山丹县| 郁南县| 遂宁市| 通化市| 金川县| 上虞市| 通渭县| 宁阳县| 黄龙县| 福清市| 孟连| 公安县| 镇巴县| 湾仔区| 龙岩市| 东源县| 嘉禾县| 横山县|