2014-10-05 2 views
-3

Привет, Я работаю над созданием sortOf для банковского приложения с использованием javafx8. Кажется, у меня проблемы с добавлением новой учетной записи. То, что я пытаюсь сделать, - создать цикл для чтения списка, если существует тот же номер учетной записи и предложить пользователю, чтобы он уже существовал. Не могли бы вы проверить, что я делаю неправильно.Looping через arraylist java

BTW I have corrected out all the typo's Eclipse always asks me to correct those before compiling 

Это список в моем главном приложении private ObservableList<Person> personData = FXCollections.observableArrayList();

Вот что я сделал, чтобы получить доступ к списку на другой класс

public ObservableList<Person> getPersonData() { 
     return personData; 
    } 

А вот в моем классе PersonEditDialogController, чтобы получить доступ к списку он сделал это

MainApp mainapp = new MainApp(); 
    ObservableList<Person> personData = mainapp.getPersonData(); 

и вот мой код для проверки пользовательского ввода

private boolean isInputValid() { 
     String errorMessage = ""; 

     if (accountNumField.getText() == null || accountNumField.getText().length() == 0) { 
      errorMessage += "Not a valid account number!\n"; 
     } 
     //TO LOOP THROUGH THE LIST 
     Person person = null; 
     for (Person a : personData) { 
      if ((accountNumField.getText().equalsIgnoreCase(a.getaccountNum()))){ 
       person = a; 
       break; 
      } 
     } 
     // CODE THAT DOES NOT WORK 
     if (accountNumField.getText().equals(person)){ 
        errorMessage += "Account number already exist\n"; 
     } 

     if (errorMessage.length() == 0) { 
      return true; 
     } else { 
      // Show the error message. 
      Dialogs.create() 
      .title("Invalid Fields") 
      .masthead("Please correct invalid fields") 
      .message(errorMessage) 
      .showError(); 
      return false; 
     } 
} 
+0

Нам потребуется дополнительная информация, например, что такое accountNumField? И нам может понадобиться узнать немного больше о Человеке, пока вы на нем ... – DreadHeadedDeveloper

+0

accountNumField - это присвоение текстовому полю, в котором пользователь может ввести нужный номер учетной записи – Onedaynerd

+0

ok, а как насчет Person? Я спрашиваю, потому что у вас есть строка accountNumField.getText(). Equals (person), означает ли это, что Person extends String или что-то? Как метод equals() может быть использован в этой ситуации? – DreadHeadedDeveloper

ответ

1

Мне кажется, что у вас есть несбалансированные фигурные скобки (есть дополнительный закрывающий фигурная скобка } после строки person = a;) И поэтому функция, кажется, заканчивается после того, как петля.

+0

Я попытался удалить его, и он не работает. из того, что я понимаю, это его цикл, проходящий через список, и если он найдет его, он назначит его человеку – Onedaynerd

+0

@Onedaynerd Хорошо, что он возвращает? Вернее, что делает программа? Он даже компилируется? – DreadHeadedDeveloper

+0

Моя программа скомпилирует именно эту строку кода, которая работает. Я не знаю, где ошибка. Если его так, как я пытался получить доступ к списку из другого класса или самого цикла, не работает – Onedaynerd

0

Я думаю вам это нужно только, чтобы получить все ваши фигурные скобки сбалансированных

Если то, что вы показали в вашем вопросе не ваш фактический код, пожалуйста, напишите реальный код и что ваши сообщения об ошибках. У вас слишком много синтаксических ошибок для тех, кто поможет вам в вашей логике.

private boolean isInputValid() { 
    String errorMessage = ""; 

    if (accountNumField.getText() == null || accountNumField.getText().length() == 0) { 
     errorMessage += "Not a valid account number!\n"; 
    } 
    //TO LOOP THROUGH THE LIST 
    Person person = null; 
    for (Person a : personData) { 
     if ((accountNumField.getText().equalsIgnoreCase(a.getaccountNum()))) { 
      person = a; 
      // } -- nPn COMMENETED OUT LINE 
      // break; -- nPn COMMENETED OUT LINE 
     } 
    } 
    // CODE THAT DOES NOT WORK 
    if (accountNumField.getText().equals(person)){ 
       errorMessage += "Account number already exist\n"; 
    } // -- nPn ADDED CURLY BRACE 


    if (errorMessage.length() == 0) { 
     return true; 
    } else { 
     // Show the error message. 
     Dialogs.create() 
     .title("Invalid Fields") 
     .masthead("Please correct invalid fields") 
     .message(errorMessage) 
     .showError(); 
     return false; 
    } 
} // --nPn ADDED CURLY BRACE 
+0

В фигурных скобках только затмение опечатки всегда просит меня исправить их перед компиляцией программы – Onedaynerd