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;
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.
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.