Me salva eu nao consigo usar Arraylist em outra classe

Ola pessoal… eu comecei meu curso de SI esse semestre e logo de cara o prof pediu um programa onde o usuario pudesse criar projetos, alterar , excluir e listar os projetos usanso o ArrayList. Eu nao tenho experiencia nenhuma com promgramação entao to sofrendo bastante. O programa roda direito na opcao de novo projeto salva tudo bonitinho mas depois que vai pro menu principal eu nao consigo listar os projetos salvos, nao consigo usar a ArrayList da outra classe. Alguem me da uma luz e tenta me explicar como completaria os outros metodos do menu. pq to quase desistindo do curso kkkkk

public static void main(String[] args) {

     menuProjeto();
     
    
    }

public static void criarProjeto() { 
    
int y = 1;
ArrayList ve = new ArrayList();         
while(y == 1){
    System.out.println("Digite o nome do projeto: ");     
    Scanner leia = new Scanner(System.in);
    String titulo = leia.next();
    System.out.println("Digite o codigo interno: ");
    Scanner leiaci = new Scanner(System.in);
    String codigo_interno = leiaci.nextLine();
    System.out.println("Digite o orçamento: ");
    Scanner leiaor = new Scanner(System.in);
    String orcamento = leiaor.nextLine();
    System.out.println("Digite a duração: ");
    Scanner leiad = new Scanner(System.in);
    String duracao = leiad.nextLine();
    ve.add(" Projeto: " + titulo + " Codigo interno: " + codigo_interno + " Orçamento: " + orcamento + " Duração: " + duracao);
    System.out.println("Deseja Adicionar outro Projeto: \n [1]SIM \n [2]NAO e voltar ao Menu Principal ");  
        y = leia.nextInt();
                          
}
for (int i = 0; i < ve.size(); i++) 
          System.out.println(ve.get(i));
    menuProjeto();

}

public static void menuProjeto() {
    System.out.println("O que você deseja fazer:");
    System.out.println("[1]Inserir um novo projeto");
    System.out.println("[2]Listar todos os projetos");
    System.out.println("[3]Atualizar a avaliação do projeto");
    System.out.println("[4]Excluir um projeto");
    System.out.println("[5]Listar um projeto pelo número");
    System.out.println("[6]Sair");
    Scanner teclado = new Scanner(System.in);
    int numero = teclado.nextInt();
    
    switch(numero){
        case 1:
            criarProjeto();
            
            
          break;
        case 2:
            listarProjeto();
            
            break;
        case 3:
            alterarProjeto();
            break;
        
        case 4:
            apagarProjeto();
            break;
        
        case 5:
            listarProjeto();
            break;
            
                      
        
        default:
            encerrarPrograma();
            break;

}
}

private static void listaProjeto() {
   
}

}

:man_facepalming:

O professor nunca dará algo que ele não tenha te passado previamente.
No seu código, ele não tá funcionando por que você ainda não criou o método listaProjeto(). A dica que posso te dar é: O listaProjeto deve imprimir todos os itens do arraylist. Se existe mais de um item, é preciso um laço de repetição.
Fora que seu nome de método está errado. Você chama ele de “listaProjeto” mas no switch chama listarProjeto. Decida um nome.

Tem outra coisa: Por que você está usando private? Foi orientação do professor? Discordo que no primeiro semestre, sem nenhum conhecimento prévio do professor, você tenha os conceitos de encapsulamento.

Enfim, vou tentar te ajudar.

Seguinte, o código funcional é esse aqui:

static ArrayList ve;

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

    public static void criarProjeto() {
        ve = new ArrayList();
        int y = 1;

        while (y == 1) {
            System.out.println("Digite o nome do projeto: ");
            Scanner leia = new Scanner(System.in);
            String titulo = leia.next();
            System.out.println("Digite o codigo interno: ");
            Scanner leiaci = new Scanner(System.in);
            String codigo_interno = leiaci.nextLine();
            System.out.println("Digite o orçamento: ");
            Scanner leiaor = new Scanner(System.in);
            String orcamento = leiaor.nextLine();
            System.out.println("Digite a duração: ");
            Scanner leiad = new Scanner(System.in);
            String duracao = leiad.nextLine();
            ve.add(" Projeto: " + titulo + " Codigo interno: " + codigo_interno + " Orçamento: " + orcamento + " Duração: " + duracao);
            System.out.println("Deseja Adicionar outro Projeto: \n [1]SIM \n [2]NAO e voltar ao Menu Principal ");
            y = leia.nextInt();

        }
        for (int i = 0; i < ve.size(); i++)
            System.out.println(ve.get(i));
        menuProjeto();
    }

    public static void menuProjeto() {
        System.out.println("O que você deseja fazer:");
        System.out.println("[1]Inserir um novo projeto");
        System.out.println("[2]Listar todos os projetos");
        System.out.println("[3]Atualizar a avaliação do projeto");
        System.out.println("[4]Excluir um projeto");
        System.out.println("[5]Listar um projeto pelo número");
        System.out.println("[6]Sair");
        Scanner teclado = new Scanner(System.in);
        int numero = teclado.nextInt();

        switch (numero) {
            case 1:
                criarProjeto();
                break;
            case 2:
                listarProjeto();
                break;
            case 3:
                alterarProjeto();
                break;

            case 4:
                apagarProjeto();
                break;

            case 5:
                listarProjeto();
                break;
            default:
                encerrarPrograma();
                break;
        }
    }

    private static void listarProjeto() {
        for (int i = 0; i < ve.size(); i++) {
            System.out.println(ve.get(i));
        }

    }
}

O que você precisa entender é que seu ArrayList não estava visível pro resto do código. Eu me recuso a acreditar que seu professor pediu algo assim sem ao menos ensinar atributos de classe. Mas enfim, foi preciso apenas mudar essa parte

para

static ArrayList ve;

public static void criarProjeto() {
    ve = new ArrayList();
    int y = 1;

que a visibilidade dela ficou em toda a classe. Lembrando que isso é um atributo estático.

Mas ainda estou indignado.

Ah, e por fim mas não menos importante: Não esqueça que a indentação é algo IMPORTANTÍSSIMO nos códigos. Ajuste seu código.

A minha faculdade ela funciona no ensino modular, entao eu estou assistindo aula hoje com quem ja fez o primeiro semestre por isso estou fazendo o segundo sem ao menos ter visto o primeiro. nao tive nem algoritmo ainda só vou ver ano que vem. e o prof ja deixou claro que é para procurar na internet o que nao entender pq ele esta la para ensinar a disciplina tal, Se o aluno souber ou nao a base para entender a materia ja é outra historia. mas obrigada voce me ajudou, estou vendo uma pequena luz no fim do tunel.

1 curtida

download
Te salvar

Sugestões:
1 - http://www.alura.com.br
2 - http://www.udemy.com
3 - Mude de faculdade

@Stella_Nicoli tente isso. É sério, sério mesmo. Que faculdade lixo. Me fala o nome dela ae pra mim ter certeza de nunca indicar ngm pra lá.

Eu chegaria na instituição e mostraria isso aqui. Perdão pela palavras a seguir, mas que faculdade lixo você está fazendo, hein?