-1

我无法识别代码中的错误,有人可以告诉我出了什么问题,已经尝试了所有方法,但找不到线程“main”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");
}

    }
}
4

1 回答 1

2

为了将来参考,请将您的代码缩减为一个简短但完整的示例来演示问题,如果您要报告异常,请包括堆栈跟踪和相关的行号。

怀疑这是问题所在:

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

这将在 4 时引起问题i

当然,这可能不是唯一的问题 - 您的代码可能还没有达到那么远。阅读超过 240 行代码是相对困难的,如果没有任何关于你想要达到的目标的解释,以及对问题的不充分描述。

于 2012-09-11T02:45:33.133 回答