2017-04-06 6 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

の場合、データのサイズは[0] [2]です。 後でi = 1と設定してから、if(data[i][0])にしてください。 UserDetails.size() = 0の場合、これにより境界外エラーが発生します。

+0

これは正しい答えではなく、実際の問題についても説明していません。この質問も明確ではありません。 – Omore

関連する問題