2012-09-11 101 views
-1

我无法识别我的代码中的错误,有人可以告诉我什么是错误的,尝试了一切,但无法找到这可能是 线程中的异常“主” java.lang.ArrayIndexOutOfBoundsException:4线程“主”异常java.lang.ArrayIndexOutOfBoundsException 4

我是巴西人,我的变量会得到一点点复杂,你能理解,因为我也不会编辑了大量的工作来改变所有的代码

package Aulas_POO; 

import javax.swing.JOptionPane; 


public class edicoes { 

    static byte espaço=10; 
    static String pesquisa; 
    static String informacoes[][] = new String [10][4]; 
    static String escolhaMenu; 


    public static void main(String[] args) { 




     String opcao=""; 


     do{ 
      opcao= ExibirMenu(); 

      if(opcao.equals("1")){ Cadastro(); } 

      if(opcao.equals("2")){ pesquisa(); } 

      if(opcao.equals("3")){ edicao(); } 

      if(opcao.equals("4")){visualizar(); } 

      if(opcao.equals("5")){deletarTudo();} 

      if(opcao.equals("6")){deletarUm(); } 

            }while(!opcao.equals("7")); 


    } 


    private static String ExibirMenu() { 
     // TODO Auto-generated method stub 

String menu ="DIGITE UMA DAS OPÇÕES\n\n\n" 
      +"1) Cadastro\n" 
      +"2) Pesquisa de nomes\n" 
      +"3) Edição de nomes\n" 
      +"4) Visualizar a lista\n" 
      +"5) Deletar todos cadastros\n" 
      +"6) Deletar Apenas um cadastro\n" 
      +"7) SAIR"; 

     return JOptionPane.showInputDialog(menu); 



    } 


    private static void deletarUm() { 
     // TODO Auto-generated method stub 

     pesquisa=JOptionPane.showInputDialog("Informe o Cpf"); 

     for (int i = 0; i < informacoes.length; i++) { 


      if (pesquisa.equals(informacoes[i][1])){ 

       informacoes[i][0]=null; 
       informacoes[i][1]=null; 
       informacoes[i][2]=null; 
       informacoes[i][3]=null; 
     } 


     } 


     JOptionPane.showMessageDialog(null,"Cadastro Deletado com SUCESSO!"); 

     } 



    private static void deletarTudo() { 
     // TODO Auto-generated method stub 



     for (int i = 0; i < informacoes.length; i++) { 

     informacoes[i][0]=null; 
     informacoes[i][1]=null; 
     informacoes[i][2]=null; 
     informacoes[i][3]=null; 
     } 


    } 

    private static void visualizar() { 
     // TODO Auto-generated method stub 

     String exibeInformacoes=""; 



     for (int i = 0; i < informacoes.length; i++) { 


      if(!(informacoes[i][i]==null)){ 

      exibeInformacoes+="\nNome: "+informacoes[i][0]+", CPF: "+informacoes[i][1]+", CEP: "+informacoes[i][2]+" e Telefone: "+informacoes[i][3]; 


      } 

           } 
    JOptionPane.showMessageDialog(null,exibeInformacoes); 

    } 


    private static void edicao() { 
     // TODO Auto-generated method stub 

     pesquisa=JOptionPane.showInputDialog("Informe o CPF"); 

     escolhaMenu="Digite \n\n"+ 
       "1-Editar nome\n"+ 
       "2-Editar cep\n"+ 
       "3-Editar telefone\n"+ 
       "4-Editar todos\n"+ 
       "5-Sair"; 


     for (int i = 0; i < informacoes.length; i++) { 




      if(escolhaMenu.equals("1")){ 
       informacoes[i][0]=JOptionPane.showInputDialog("Informe o novo Nome");} 

      if(escolhaMenu.equals("2")){ 
       informacoes[i][2]=JOptionPane.showInputDialog("Informe o novo cep");} 

      if(escolhaMenu.equals("3")){ 
       informacoes[i][3]=JOptionPane.showInputDialog("Informe o novo telefone");} 

      if(escolhaMenu.equals("4")){ 
       informacoes[i][0]=JOptionPane.showInputDialog("Informe o novo Nome"); 
       informacoes[i][1]=JOptionPane.showInputDialog("Informe o novo cpf"); 
       informacoes[i][2]=JOptionPane.showInputDialog("Informe o novo cep"); 
       informacoes[i][3]=JOptionPane.showInputDialog("Informe o novo telefone");} 

      if(escolhaMenu.equals("5")){return;} 

     } 


    } 


    private static void pesquisa() { 
     // TODO Auto-generated method stub 

     pesquisa=JOptionPane.showInputDialog("Informe o CPF"); 

     escolhaMenu="Digite \n\n"+ 
        "1-Pesquisar nome\n"+ 
        "2-Pesquisar cep\n"+ 
        "3-Pesquisar telefone\n"+ 
        "4-Pesquisar todos\n"+ 
        "5-Sair"; 

     for (int i = 0; i < informacoes.length; i++) { 


     if(pesquisa.equals(informacoes[i])){ 


      if(escolhaMenu.equals("1")){ 

      JOptionPane.showMessageDialog(null,informacoes[i][0]);} 
     } 

     if(escolhaMenu.equals("2")){ 

      JOptionPane.showMessageDialog(null,informacoes[i][2]);} 




     if(escolhaMenu.equals("3")){ 

     JOptionPane.showMessageDialog(null,informacoes[i][3]);} 



     if(escolhaMenu.equals("4")){ 

     JOptionPane.showMessageDialog(null,"\n"+informacoes[i][i]);} 

     } 

     if(escolhaMenu.equals("5")){ 
      return; 
     } 

} 

    private static void Cadastro() { 
     // TODO Auto-generated method stub 

if(espaço!=0){ 




     informacoes[0][0]=JOptionPane.showInputDialog("Informe o nome"); 
     informacoes[0][1]=JOptionPane.showInputDialog("Informe o cpf"); 
     informacoes[0][2]=JOptionPane.showInputDialog("Informe o cep"); 
     informacoes[0][3]=JOptionPane.showInputDialog("Informe o telefone"); 


     JOptionPane.showMessageDialog(null,"Cadastro efetuado com SUCESSO!"); 


     espaço--; 
} 

else{ 
    JOptionPane.showMessageDialog(null,"Não há mais espaço disponível , remova algum cadastro para novo cadastro"); 
} 

    } 
} 
+1

请发布完整的堆栈跟踪。你的问题可能是你没有正确初始化多维数组。 – Antimony

+0

@Antimony:初始化看起来对我有效:'static String informacoes [] [] = new String [10] [4];'这不是很好*,将类型信息分开,但它应该工作。看到我的答案,我怀疑问题在哪里。 –

+0

-1不发布回溯。 –

回答

2

为了将来的参考,减少你的代码只是一个sh但是完整的例子说明了这个问题,如果你报告了一个异常,请包括堆栈跟踪和相关的行号。

怀疑,这就是问题所在:

for (int i = 0; i < informacoes.length; i++) { 
    if(!(informacoes[i][i]==null)){ 

那将导致一个问题,当i为4

这也许不是当然的唯一问题 - 你的代码可能没有达到那么远。阅读240多行代码时没有任何关于你想要实现的内容的解释是相对困难的,并且对错误的描述不足。

+0

谢谢乔恩,错误是一样的,但不只是那条线,我有编辑放在[i] [i]上的所有条件...我认为离开位置矩阵percoreria 0-3,虽然她经过1-4导致错误。 – user1660583

+0

@ user1660583:我根本没有听从第二句话 - “percoreria”是什么意思?但问题是'i'会上升到10,因为那是'informacoes'的长度。 –

相关问题