2014-10-05 117 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