Gostaria de saber como faço para pegar dois resultados, cada um de classes diferentes e vincular a um LIST de outra classe. Tenho uma classe de Alunos e outro de Disciplinas, todos armazenados em uma LIST. Tenho a opção para vincular um aluno a uma Disciplina através de um LIST e não estou conseguindo fazer. Segue meu Código:
List<AlunoCad> aluno1 = new ArrayList<AlunoCad>();
List<Disciplina> disciplinas = new ArrayList<Disciplina>();
String titulo = "Sistema Academico";
String conteudo = "1 - Cadastrar Aluno\n"
+ "2 - Cadastrar Disciplina\n"
+ "3 - Cadastrar Professor\n"
+ "4 - Listar Alunos\n"
+ "5 - Listar Disciplinas\n"
+ "6 - Listar Professor\n"
+ "7 - Vincular Aluno/Disciplina\n"
+ "8 - Todos cadastrados\n"
+ "9 - Sair";
int contadorMatricula = 1;
int contCodDisciplina = 1;
while (true){
String opcao = JOptionPane.showInputDialog(null, conteudo, titulo, JOptionPane.QUESTION_MESSAGE);
switch (opcao){
case "1":
AlunoCad alunocad = new AlunoCad();
alunocad.setNome(titulo);
alunocad.setCpf(titulo);
alunocad.setIdade(titulo);
alunocad.setMatricula(contadorMatricula);
contadorMatricula++;
//alunocad.idade = Integer.parseInt(JOptionPane.showInputDialog(null, "Informe a idade", titulo, JOptionPane.QUESTION_MESSAGE));
//alunocad.matricula = new Matricula();
// alunocad.matricula.numero = contadorMatricula;
//contadorMatricula++;
aluno1.add(alunocad);
break;
case "2":
Disciplina disciplina = new Disciplina();
disciplina.setCodigo(contCodDisciplina);
contCodDisciplina++;
disciplina.setDatainicio(titulo);
disciplina.setPeriodo(titulo);
disciplinas.add(disciplina);
break;
case "4":
for (int i = 0; i < aluno1.size(); i++){
aluno1.get(i).mostraAluno(titulo);
}
case "5":
for (int i = 0; i < disciplinas.size(); i++){
disciplinas.get(i).listarDisciplinas(titulo);
}
break;
case "7":
//Vinculando aluno a sua disciplina
String alunov = JOptionPane.showInputDialog(null, "Informe o codigo do Aluno", titulo, JOptionPane.QUESTION_MESSAGE);
String disciplinav = JOptionPane.showInputDialog(null, "Informe o codigo da Disciplina", titulo, JOptionPane.QUESTION_MESSAGE);
for (int a = 0; a < aluno1.size(); a++){
if (aluno1.get(a).equals(alunov)){
Matricula aluno = new Matricula();
aluno.disciplinas.add(aluno1.get(a).mostraAluno(titulo));
}
for (int d = 0; d < disciplinas.size(); d++){
if (disciplinas.get(d).equals(disciplinav)){
Matricula discip = new Matricula();
discip.disciplinas.add(disciplinas.get(d).listarDisciplinas(titulo));
}
}
}
break;
case "9":
System.exit(0);
break;
}
}
}
A questão é quando escolher a opção 7, e ele tem que pegar o aluno e disciplina vinculados e adicionar a uma List todos os dados de cada um.