2

検証ループ機能でテキストフィールドの一覧をチェックしたい

誰かが私にこれを行う方法を説明できれば;)

私はこれをします :

 public void  validation()
    {
       List<String> list = new ArrayList<>();
       list.add("LastNameTextField");
       list.add("nameTextField");
       list.add("ageTextField"); 
       list.add("AdressTextField");        
       list.add("PhoneTextField1");        


       for(String check :list )
       {
          if(validator((check.toString()).toString()))
/*here i just want to get the field name and this value */
             JOptionPane.showMessageDialog(null, check+ " Empty value");
       }


    }

    public static boolean validator(String TextFieldTextToCheck)
    {
       if ((TextFieldTextToCheck== null) || (TextFieldTextToCheck.length() == 0)) {
            return true ;
        }
       else return false;
    }

誰かが助けてくれるなら、フィールド値を取得する方法が見つかりません

4

2 に答える 2

2

記録として、私には Java の経験があまりありません。私の理解が正しければ、GUI で複数の TextField の内容を検証しようとしています。また、検証では、テキストフィールドが空であることのみが確認されます。textField 名のコレクションを使用する代わりに、検証したいテキストフィールドへの参照のコレクションを使用することをお勧めします。

したがって、代わりに ArrayList にテキストフィールド参照が入力されます。

ArrayList<TextField> textFields = new ArrayList<TextField>();
textFields.add(textbox1);
textFields.add(textbox2);
textFields.add(textbox3);
textFields.add(textbox4);

前と同じように ArrayList を反復処理します。私は独自のテストに System.Out 呼び出しを使用しました。

for(TextField textField : textFields) {
    if(validateTextField(textField)) {
        //JOptionPane.showMessageDialog(null, textField.getText() + " Empty value");
        System.out.println(textField.getName() + " has an Empty value");
    }
}

検証関数は次のようになります。NULL 参照のテストを追加しましたが、省略できます。

public static boolean validateTextField(TextField textField) {
    if(textField == null) throw new NullPointerException("The validate function received a null textfield reference. Check your loop.");
    return textField.getText().length() == 0;
}
于 2012-12-01T19:24:17.367 に答える
1

あなたのif状態は正しくありません。

    if(validator((check.toString()).toString()))

次のように修正する必要があります。

   if(YourClass.validator(check))

説明:

  1. checkはすでに文字列です。それを呼び出す必要はありませんtoString()

  2. validatorメソッドは静的メソッドなので、クラス名がどこにあるかのstaticように呼び出します。YourClass.validatorYourClass

  3. validatorメソッドは戻りbooleanif期待するbooleanので、再度文字列を取得する必要はありません。

于 2012-11-28T19:35:44.890 に答える