2011-10-26 18 views
2

ユーザー入力を検証するには、10進数2桁の5桁しか使用できません。私は5桁をチェックするのに以下のコードを使用していますが、2桁の小数をチェックする方法はありますか?Javaのテキストフィールド10進数の検証

if (!id.equals("")) { 
     try { 
      Integer.parseInt(id); 
      if (id.length() <= 5) { 
       return true; 
      } 
     } catch (NumberFormatException nfe) { 
      return false; 
     } 
    } 
+1

[JFormattedTextField](http://download.oracle.com/javase/6/docs/api/javax/swing/JFormattedTextField.html)に興味があるかもしれません。 –

答えて

3
if(id.matches("\\d{5}\\.\\d{2}")) 
    return true; 
return false; 
+1

彼は "5番まで"を望んでいるのを除いて "まさしく5番"ではなく。 –

3

Swingの検証はInputVerifierを使用して実行できます。

  1. まず、あなたのテキストフィールドにそのクラスのインスタンスを割り当てるその後、独自の入力ベリファイア

    public class MyInputVerifier extends InputVerifier { 
        public boolean verify(JComponent input) { 
         String text = ((JTextField) input).getText(); 
         try { 
          BigDecimal value = new BigDecimal(text); 
          return (value.scale() <= Math.abs(2)); 
         } catch (NumberFormatException e) { 
          return false; 
         } 
        } 
    } 
    
  2. を作成します。 (実際にはどのJComponentも検証可能です)

myTextField.setInputVerifier(new MyInputVerifier()); もちろん、匿名の内部クラスを使用することもできますが、バリデーターを他のコンポーネントでも使用する場合は、通常のクラスが適しています。

SDKのドキュメントもご覧ください:JComponent#setInputVerifier