2017-04-06 2 views
0

Momentan habe ich eine Textdatei, die den Benutzernamen und das Passwort enthält und in ein Objekt geschrieben hat. Wenn Sie sich jedoch anmelden, wird der Array-Index außerhalb des zulässigen Bereichs angezeigt. Kann nicht sehen, was der Fehler ist.Wie suche ich ein Objekt, um zu sehen, ob es einen Benutzernamen und ein Passwort enthält?

Object[][] data = new Object[UserDetails.size()][2]; 
    for(int i=1; i<UserDetails.size(); i++) { 
      data[i][0] = UserDetails.get(i)[0]; 
      data[i][1] = UserDetails.get(i)[1]; 
      System.out.println(data[i][0]); 
      System.out.println(data[i][1]); 


    boolean match = false; 
    boolean limit = false; 
    int i=1; 
    do{ 
     if((data[i][0] == username) && (data[i][1] == password)){ 
      match = true; 
     UsernameField.setText(null); 
     PasswordField.setText(null); 
     close(); 
     TablePage table; 
     table = new TablePage(username); 
     table.setVisible(true); 
     JOptionPane.showMessageDialog(null, "Sucessfully Logged In","Login Success",JOptionPane.INFORMATION_MESSAGE); 
     close(); 
     }else{ 
      if(i == UserDetails.size()){ 
       limit=true; 
      } 
      i++; 

     } 

    } while(match==false || limit == true); 
+0

Frage ist Bit unklar mit einigen Variablen 'UserDetails' sind nicht richtig im Code veröffentlicht. Es kann hilfreich sein, wenn Sie den gesamten Code posten könnten. –

+0

nicht hart Ihre Array-Indizes codiert. – Omore

+0

Warum benutzen Sie solch eine schreckliche Datenstruktur? Was Sie wirklich brauchen, ist ein Array von 'Paar '? – EJP

Antwort

1

Wenn UserDetails.size() = 0, dann ist die Größe der Daten ist, [0] [2]. Später setzen Sie i = 1, und dann haben Sie eine if(data[i][0]). Dies würde einen Fehler außerhalb der Grenzen verursachen, wenn UserDetails.size() = 0;

+0

das ist nicht die richtige Antwort nicht einmal das eigentliche Problem zu erklären auch diese Frage ist nicht klar. – Omore

Verwandte Themen