2017-04-06 33 views
0

目前我已經有一個文本文件,其中包含用戶名和密碼,並把它放在一個對象。然而,當試圖登錄時,它說數組索引超出界限。看不到錯誤是什麼。如何搜索對象以查看它是否包含用戶名和密碼?

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

問題有點不清楚,有些變量'UserDetails'沒有正確地發佈在代碼中。如果您可以發佈所有代碼,可能會有所幫助。 –

+0

不要硬編碼你的數組索引。 – Omore

+0

爲什麼你使用這樣一個可怕的數據結構?當然你真正需要的是一個'Pair '的數組嗎? – EJP

回答

1

如果UserDetails.size() = 0,則數據的大小是[0] [2]。 後來你設置i = 1,然後有一個if(data[i][0])。 如果是UserDetails.size() = 0,這會導致出界限錯誤;

+0

這不是正確的答案,甚至不解釋真正的問題,這個問題也不清楚。 – Omore

相關問題