Как проверить список textField с помощью функции проверки цикла
Я хочу проверить список текстового поля с функцией цикла проверки
если кто-нибудь может объяснить мне, как это сделать спасибо;)
я сделаю это:
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 ответа
Для справки, у меня нет большого опыта Java. Если я правильно понимаю, вы пытаетесь проверить содержимое нескольких TextFields в GUI. И проверка только гарантирует, что текстовое поле пусто. Я бы рекомендовал вместо использования набора имен 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");
}
}
Функция validate теперь выглядит следующим образом. Я добавил тест для 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;
}
Ваш if
условие неверное.
if(validator((check.toString()).toString()))
Это должно быть исправлено как:
if(YourClass.validator(check))
Объяснение:
check
это уже строка Там не нужно звонитьtoString()
в теме.validator
Метод является статическим методом, поэтому вызовите его вstatic
какYourClass.validator
гдеYourClass
ваше имя классаvalidator
возврат методаboolean
а такжеif
надеетсяboolean
так что не нужно снова получать строку.