Boa tarde (ou bom dia) pessoa,
Sou novo aqui no forum e no java... pelo que estou vendo o pessoal aqui é compreensivo e paciente, acho que podem me ajudar
Estou meio empacado em um trabalho da faculdade e gostaria de saber se alguem pode me ajudar... O que acontece é que estou com dificuldade na lógica de criar esses submenus em joptionpane. Quando eu escolho o segundo botao(listagens) no menu principal, está dando alguns conflitos, pois de alguma maneira está chamando as linhas de comando do primeiro botao(cadastro).
Gostaria que dessem uma olhada e alguma dica de como fazer de uma forma mais organizada. Como por exemplo, criar mais alguma classe.
Desde já agradeço muito a quem ajudar!
Segue o código da classe Principal:public class Principal {
public static void main(String[] args) {
//declaracao da ArrayList de Objetos:
ArrayList<Pessoa> cadastro = new ArrayList<Pessoa>();
//Declaracao de variaveis e arrays:
int opcaoMenuPrincipal;
int opcaoSubMenu1 = 0;
int opcaoSubMenu2 = 1;
int opcaoSubMenu3 = 2;
String[] botaoMenu1 = {"Cadastro", "Listagens", "Informações", "Sair"};
String[] botaoMenu1_1 = {"Cadastrar Aluno", "Cadastrar Professor"};
String[] botaoMenu1_2 = {"Listar e-mails de professores", "Listar e-mails de alunos", "Listar todos os emails"};
String[] botaoMenu1_3 = {"Aluno mais novo", "Aluno mais velho"};
do{
opcaoMenuPrincipal = JOptionPane.showOptionDialog(null, "Selecione Opção: ","Menu Principal", 0, JOptionPane.QUESTION_MESSAGE, null, botaoMenu1, botaoMenu1[0]);
//Menu Principal:
switch (opcaoMenuPrincipal) {
case 0:
opcaoSubMenu1 = JOptionPane.showOptionDialog(null, "Selecione Opção: ","Menu Cadastro", 0, JOptionPane.QUESTION_MESSAGE, null, botaoMenu1_1, botaoMenu1_1[0]);
break;
case 1:
opcaoSubMenu2 = JOptionPane.showOptionDialog(null, "Selecione Opção: ","Menu Listagem", 0, JOptionPane.QUESTION_MESSAGE, null, botaoMenu1_2, botaoMenu1_2[0]);
break;
case 2:
opcaoSubMenu3 = JOptionPane.showOptionDialog(null, "Selecione Opção: ","Menu Informacoes", 0, JOptionPane.QUESTION_MESSAGE, null, botaoMenu1_3, botaoMenu1_3[0]);
break;
case 3:
continue;
}
//Sub-Menu / Cadastro:
switch (opcaoSubMenu1) {
case 0:
Pessoa aluno = new Pessoa();
aluno.alunoOuProfessor(1);
aluno.setNome(JOptionPane.showInputDialog(null, "Digite nome completo do Aluno:"));
aluno.setDataNasc(Integer.parseInt(JOptionPane.showInputDialog(null, "Digite o ano de nascimento de "+aluno.getNome()+":")));
StringTokenizer nomeEmailAluno = new StringTokenizer(aluno.nome, " ");
aluno.setEmail(nomeEmailAluno.nextToken()+aluno.getDataNasc()+"@acad.unisul.br");
cadastro.add(aluno);
break;
case 1:
Pessoa professor = new Pessoa();
professor.alunoOuProfessor(2);
professor.setNome(JOptionPane.showInputDialog(null, "Digite nome completo do Professor:"));
professor.setDataNasc(Integer.parseInt(JOptionPane.showInputDialog(null, "Digite o ano de nascimento de "+professor.getNome()+":")));
StringTokenizer nomeEmail = new StringTokenizer(professor.nome, " ");
professor.setEmail(nomeEmail.nextToken()+professor.getDataNasc()+"@prof.unisul.br");
cadastro.add(professor);
break;
}
//Sub-Menu Impressoes:
switch (opcaoSubMenu2) {
//Imprimir Professores:
case 0:
for (int i = 0; i < cadastro.size(); i++) {
if (cadastro.get(i).getIdentificacao() == 2){
System.out.println(cadastro.get(i).getEmail());
}
}
break;
case 1:
//Imprimir Alunos:
for (int i = 0; i < cadastro.size(); i++) {
if (cadastro.get(i).getIdentificacao() == 1){
System.out.println(cadastro.get(i).getEmail());
}
}
break;
case 2:
//Imprimir todos:
for (int i = 0; i < cadastro.size(); i++) {
System.out.println(cadastro.get(i).getNome()+"\n"+cadastro.get(i).getEmail());
}
break;
default:
break;
}
}while(opcaoMenuPrincipal == 0);
}
}
package ExercicioFinal;
import java.util.StringTokenizer;
public class Pessoa {
String nome;
int dataNasc;
String email;
int identificacao;
public int alunoOuProfessor(int identificacao){
this.identificacao = identificacao;
if(this.identificacao == 1){
return 1;
}else{
return 2;
}
}
public int getIdentificacao() {
return identificacao;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public int getDataNasc() {
return dataNasc;
}
public void setDataNasc(int dataNasc) {
this.dataNasc = dataNasc;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
para quem quiser se dispor, está aqui o objetivo do trabalho:
[list] Faça um programa Java para armazenar o nome completo, o ano de nascimento e o e
mail dos alunos e professores da Unisul. Cada uma destas informações deverá ser
armazenada em um array. O usuário deverá digitar apenas o nome completo e ano de
nascimento. O endereço de email deverá ser gerado automaticamente, considerando as
seguintes regras: o domínio dos emails dos professores é ?prof.unisul.br? e o domínio dos
emails dos alunos é ?acad.unisul.br?; o formato do endereço de email deve ser
primeiro_nome + ano_de_nascimento + @ + domínio.
Métodos deverão ser criados para executar as principais funções do sistema:
Receber o nome completo e retornar apenas o primeiro nome.
Receber o primeiro nome, o ano de nascimento e o domínio e retornar o endereço
de email.
Ademais, através de métodos, o sistema deverá permitir a impressão dos seguintes
relatórios:
Todos os nomes e endereços de email.
Nomes e endereços de email apenas dos professores.
Nomes e endereços de email apenas dos alunos.
Nome do aluno mais novo
Nome do professor mais velho
O sistema deverá apresentar um menu ao usuário e a partir deste menu, todas as
operações deverão se inicializadas. Utilize uma estrutura de repetição para executar as
opções do usuário.
1. Cadastrar professor
2. Cadastrar aluno
3. Listar emails de professores
4. Listar emails de alunos
5. Listar todos os emails
6. Aluno mais novo
7. Professor mais velho
8. Sair[/list]