[RESOLVIDO] Buscar e Imprimir dados de uma Array

Estou com problemas para imprimir os dados de uma Array

[Aplicação: O usuário vai pra tela de MENU, seleciona a opção de cadastro(“cadastrarDesenhoAnimado”)
… Cadastra… (criasse uma Array “desenhosAnimados” com os dados) e retorna ao MENU, quando seleciona a opção de exibir os dados cadastrados (“imprimirLista”) tenho o seguinte erro:

“Exception in thread “main” java.lang.RuntimeException: Uncompilable source code - Erroneous tree type:
at Principal.imprimirLista(Principal.java:261)”

import java.util.Scanner;

public class Principal {

    Scanner scanner = new Scanner(System.in);
    Scanner ler = new Scanner(System.in);
    // Estrutura de dados que armazenará os dados dos filmes ... 
    private static String[][] desenhosAnimados;
    // Indices dos campos dos desenhos ...
    private static final int CODIGO = 0;
    private static final int ID = 1;
    private static final int NOME = 2;
    private static final int CLASSIFICACAO = 3;
    private static final int ANO = 4;
    private static final int TEMPO = 5;
    private static final int QTD_ESTOQUE = 6;
    private static final int VALOR = 7;
    // String do menu ...
    private static final String MENU = "Projeto Interdisciplinar \n"
            + "Tema:Desenhos Animados \n \n"
            + "Selecione a opção desejada:\n"
            + "[1] --> Cadastrar Desenhos. \n"
            + "[2] --> Alterar dados de um desenho cadastrado. \n"
            + "[3] --> Exibir desenhos de determinada faixa etária. \n"
            + "[4] --> Exibir desenho mais antigo de uma faixa etária \n"
            + "[5] --> Exibir valor em DVD no estoque de um determinado desenho. \n"
            + "[6] --> Exibir tempo médio de duração de todos os desenhos cadastrados. \n"
            + "[7] --> Listar todos desenhos cadastrados \n"
            + "[8] --> Créditos \n"
            + "[9] --> Sair \n"
            +"_________________________________________________________________________\n \n";

    private static void cadastrarDesenhoAnimado() {
        Scanner ler = new Scanner(System.in);

        String id;
        String nome;
        String classificacao;
        String ano;
        String duracao;
        String qtd;
        String valor;
        System.out.println("Quantos desenhos você irá cadastrar ?");
        int n1 = ler.nextInt();
        desenhosAnimados = new String[n1][8];
        for (int i = 0; i < desenhosAnimados.length; i++) {
            System.out.println("Cadastro Desenho nº " + (i + 1));
            System.out.println("Informe o nome do desenho:");
            nome = ler.next();

            System.out.println("Informe o código(ID) do desenho:");
            id = ler.next();

            System.out.println("Informe idade minima recomendada (classificação):");
            classificacao = ler.next();

            System.out.println("Informe o ano de lançamento do desenho: ");
            ano = ler.next();

            System.out.println("Informe quantos minutos tem de duração o desenho:");
            duracao = ler.next();

            System.out.println("Informe a quantidade de DVD(s) que há em estoque deste desenho:");
            qtd = ler.next();

            System.out.println("Informe o valor de cada DVD(s) deste desenho:");
            valor = ler.next();

            desenhosAnimados[i][CODIGO] = "" + (i + 1);
            desenhosAnimados[i][ID] = id;
            desenhosAnimados[i][NOME] = nome;
            desenhosAnimados[i][CLASSIFICACAO] = classificacao;
            desenhosAnimados[i][ANO] = ano;
            desenhosAnimados[i][TEMPO] = duracao;
            desenhosAnimados[i][QTD_ESTOQUE] = qtd;
            desenhosAnimados[i][VALOR] = valor;
        }
        System.out.println("Todos os Desenhos foram cadastrados com sucesso !");
    }

    private static void alterarDesenhosAnimados() {
        Scanner ler = new Scanner(System.in);
        System.out.println("Informe a ID do desenho que deseja alterar os dados:");
        String idPesquisa = ler.next();
        for (int i = 0; i < desenhosAnimados.length; i++) {
            if (desenhosAnimados[i][ID].equals(idPesquisa)) {
                String codigo = desenhosAnimados[i][ID];
                System.out.println("Informe o novo nome do desenho de ID [" + codigo + "]:");
                String nome = ler.next();
                System.out.println("informe a nova classificação:");
                String classificacao = ler.next();
                System.out.println("informe o ano de lançamento do desenho:");
                String ano = ler.next();
                System.out.println("informe o tempo de duração do desenho (em minutos):");
                String duracao = ler.next();
                System.out.println("informe quantos DVD's do desenho há no estoque:");
                String qtd = ler.next();
                System.out.println("informe o valor de cada DVD's do desenho:");
                String valor = ler.next();

                desenhosAnimados[i][NOME] = nome;
                desenhosAnimados[i][CLASSIFICACAO] = classificacao;
                desenhosAnimados[i][ANO] = ano;
                desenhosAnimados[i][TEMPO] = duracao;
                desenhosAnimados[i][QTD_ESTOQUE] = qtd;
                desenhosAnimados[i][VALOR] = valor;
            } else {
                System.out.println("Nenhum registro encontrado com o ID informado, tente novamente.");
                System.out.println("___________________________________________________________\n"
                        + "Selecio a opção desejada:\n"
                        + "[1] Tentar Novamente \n"
                        + "[0]  Voltar ao Menu \n"
                        + "___________________________________________________________");
                int opcao = ler.nextInt();
                if (opcao == 1) {
                    alterarDesenhosAnimados();
                } else {
                    menu();
                }
            }
        }
    }

    private static void creditos() {
        Scanner ler = new Scanner(System.in);
        System.out.println("___________________________________________________________\n"
                + "Projeto Interdisciplinar \n"
                + "Tema:Desenhos Animados \n \n"
                + "Lindomar Jose da Silva R.A: 1912126-1\n"
                + "Luiz Baitola \n"
                + "___________________________________________________________");
        System.out.println("\n"
                + "Selecio a opção desejada:\n"
                + "[1] Voltar ao Menu \n"
                + "[0] Encerrar \n");
        int opcao = ler.nextInt();
        if (opcao == 1) {
            menu();
        } else {
            System.out.println("Obrigado!!");
            System.exit(0);
        }
    }

    private static void menu() {
        Scanner ler = new Scanner(System.in);
        System.out.println("Projeto Interdisciplinar \n \n");
        System.out.println("Tema: Desenho \n ");

        System.out.println(MENU);
        int opcao = ler.nextInt();
        switch (opcao) {
            case 1:
                cadastrarDesenhoAnimado();
                System.out.println("___________________________________________________________\n"
                        + "Selecio a opção desejada:\n"
                        + "[1] Voltar ao Menu \n"
                        + "[0] Encerrar \n");
                opcao = ler.nextInt();
                if (opcao == 1) {
                    menu();
                } else {
                    break;
                }
            case 2:
                alterarDesenhosAnimados();
                System.out.println("___________________________________________________________\n"
                        + "Selecio a opção desejada:\n"
                        + "[1] Voltar ao Menu \n"
                        + "[0] Encerrar \n");
                opcao = ler.nextInt();
                if (opcao == 1) {
                    menu();
                } else {
                    break;
                }
            case 3:
                //Exibir desenhos de determinada faixa etária.
                System.out.println("___________________________________________________________\n"
                        + "Selecio a opção desejada:\n"
                        + "[1] Voltar ao Menu \n"
                        + "[0] Encerrar \n");
                opcao = ler.nextInt();
                if (opcao == 1) {
                    menu();
                } else {
                    break;
                }
            case 4:
                //Exibir desenho mais antigo de uma faixa etária 
                System.out.println("___________________________________________________________\n"
                        + "Selecio a opção desejada:\n"
                        + "[1] Voltar ao Menu \n"
                        + "[0] Encerrar \n");
                opcao = ler.nextInt();
                if (opcao == 1) {
                    menu();
                } else {
                    break;
                }
            case 5:
                //Exibir valor em DVD no estoque de um determinado desenho.
                System.out.println("___________________________________________________________\n"
                        + "Selecio a opção desejada:\n"
                        + "[1] Voltar ao Menu \n"
                        + "[0] Encerrar \n");
                opcao = ler.nextInt();
                if (opcao == 1) {
                    menu();
                } else {
                    break;
                }
            case 6:
                //Exibir tempo médio de duração de todos os desenhos cadastrados.
                System.out.println("___________________________________________________________\n"
                        + "Selecio a opção desejada:\n"
                        + "[1] Voltar ao Menu \n"
                        + "[0] Encerrar \n");
                opcao = ler.nextInt();
                if (opcao == 1) {
                    menu();
                } else {
                    break;
                }
            case 7:
                imprimirLista();
                System.out.println("___________________________________________________________\n"
                        + "Selecio a opção desejada:\n"
                        + "[1] Voltar ao Menu \n"
                        + "[0] Encerrar \n");
                opcao = ler.nextInt();
                if (opcao == 1) {
                    menu();
                } else {
                    break;
                }
            case 8:
                creditos();
                System.out.println("___________________________________________________________\n"
                        + "Selecio a opção desejada:\n"
                        + "[1] Voltar ao Menu \n"
                        + "[0] Encerrar \n");
                opcao = ler.nextInt();
                if (opcao == 1) {
                    menu();
                } else {
                    break;
                }
            case 9:
                break;
            default:
                break;
        }
    }

O problema está nesta parte:

    private static void imprimirLista() {
        Scanner ler = new Scanner(System.in);
        
        for (int i = 0; i < desenhosAnimados.length; i++) {
            System.out.println("Desenho " + (1 + i) + ": \n"
                    + "Nome: " + NOME[i] + ".\n"
                    + "ID: " + ID[i] + ".\n"
                    + "Classificação: " + CLASSIFICACAO[i] + " anos.\n"
                    + "Lançameto: " + ANO[i] + ".\n"
                    + "Duração: " + TEMPO[i] + " minutos.\n"
                    + "Em estoque: " + QTD_ESTOQUE[i] + " unidades.\n"
                    + "Valor unitário: R$" + VALOR[i] + " \n"
                    + "________________________________________________");

        }

    }

    public static void main(String[] args) {
        menu();
    }
}

Dei uma pesquisada aqui mas por ser muito cru em java não consegui achar algo que ajudasse, tirei como base um trabalho igual http://www.guj.com.br/t/array-cadastro/88881 de anos atrás porém é o mesmo trabalho, mas como o professor que estou não passou muita coisa estou usando apenas o que foi ensinado em aula…

Se alguém puder dar uma LUZ pois com essa função consigo dar continuidade e acredito finalizar a aplicação. E se puder avaliar também, criticas são bem vindas pois estou iniciando em java.
Vlw !!

Boa noite, tudo bem?

Acredito que o seu problema é simples.

No método imprimirLista, tenta alterar NOME[i] para desenhosAnimados[i][NOME]. O mesmo para os demais dados.

1 curtida

Você deve criar um list de um objeto e ai sim no objeto você iria adicionar os dados, pesquise sobre Objetos e sobre List

existe tópico semelhante
link

1 curtida

Era isso mesmo, muito obrigado

Marque a resposta que soluciona como “Resposta”.

1 curtida

Pensei q já havia marcado, mals e obrigado pelo Tok.