java-如何使用循环验证函数检查textField列表

时间:2012-11-28 19:31:57

标签: java string validation textfield isnullorempty

我想查看带有验证循环功能的文本字段列表

如果有人能解释我怎么做这件事;)

我这样做:

 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;
    }

如果有人能帮助你,我找不到获得现场价值的方法 谢谢你的时间

2 个答案:

答案 0 :(得分:1)

您的if条件不正确。

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

应该更正为:

   if(YourClass.validator(check))

说明:

  1. check已经是String。无需在其上调用toString()

  2. validator方法是一种静态方法,因此以static方式将其称为YourClass.validator,其中YourClass是您的类名。

  3. validator方法返回booleanif期望boolean,因此无需再次获取字符串。

答案 1 :(得分:1)

为了记录,我没有分享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;
}