Как проверить список 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))

Объяснение:

  1. check это уже строка Там не нужно звонить toString() в теме.

  2. validator Метод является статическим методом, поэтому вызовите его в static как YourClass.validator где YourClass ваше имя класса

  3. validator возврат метода boolean а также if надеется boolean так что не нужно снова получать строку.

Другие вопросы по тегам