2014-10-05 159 views
-3

嗨我正在創建一個sortOf使用javafx8的銀行應用程序。我似乎在添加新帳戶方面遇到了麻煩。我想要做的是創建一個循環來讀取列表,如果存在相同的帳號並提示用戶它已經存在。你能檢查我做錯了嗎?通過Arrayyl循環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?我們可能還需要了解更多關於Person的信息... – DreadHeadedDeveloper 2014-10-05 02:55:53

+0

accountNumField是一個文本框的分配,用戶可以在其中輸入想要的帳號 – Onedaynerd 2014-10-05 02:59:32

+0

ok,那麼Person呢?我問,因爲你有行accountNumField.getText()。等於(人),這是否意味着人員擴展字符串或東西? equals()方法在這種情況下甚至可以使用嗎? – DreadHeadedDeveloper 2014-10-05 03:04:05

回答

1

在我看來,你有不平衡的大括號(還有一個額外的行person = a;後右大括號}),因此函數似乎要結束了之後循環。

+0

我試圖刪除它,它不起作用。從我的理解是它會遍歷整個列表,如果它發現它,它將它分配給人 – Onedaynerd 2014-10-05 03:05:28

+0

@Onedaynerd那麼它返回什麼?或者說,該計劃是做什麼的?它甚至編譯? – DreadHeadedDeveloper 2014-10-05 03:05:59

+0

我的程序編譯它就是那些能夠工作的代碼行。我不知道錯誤在哪裏。如果它的方式,我試圖從另一個類或循環本身訪問列表是不workin – Onedaynerd 2014-10-05 03:10:56

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

大括號只是錯字的eclipse總是要求我在編譯程序之前糾正它們 – Onedaynerd 2014-10-05 04:30:57