我想查看带有验证循环功能的文本字段列表
如果有人能解释我怎么做这件事;)
我这样做:
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;
}
如果有人能帮助你,我找不到获得现场价值的方法 谢谢你的时间
答案 0 :(得分:1)
您的if
条件不正确。
if(validator((check.toString()).toString()))
应该更正为:
if(YourClass.validator(check))
说明:
check
已经是String。无需在其上调用toString()
。
validator
方法是一种静态方法,因此以static
方式将其称为YourClass.validator
,其中YourClass
是您的类名。
validator
方法返回boolean
,if
期望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;
}