Olá, quando compilo meu programa, ela gera um menu, até ai tudo certo, eu escolho o cadastro de Usuário e ele cadastra e depois peço para ele me mostrar o cadastro e mostra também. Porém, quando peço para cadastrar a Banda do usuário, ele cadastra mas depois ele não consegue me mostrar por conta deste erro:
Exception in thread "main" java.lang.NullPointerException
at GerBanda.impAllBandaCad(GerBanda.java:107)
at MenuBanda.geraMenuBanda(MenuBanda.java:55)
at TstShowTime.main(TstShowTime.java:14)
CÓDIGOS ENVOLVIDOS:
CLASSE TstShowTime:
import java.util.List;
import java.util.ArrayList;
public class TstShowTime extends Banda {
Banda b1 = new ImplementsBanda();
private static MenuBanda menuBanda = new MenuBanda();
public static void main(String arg[]) {
menuBanda.geraMenuBanda();
} //novo fim main
}
CLASSE MenuBanda
import java.util.List;
import java.util.ArrayList;
public class MenuBanda {
private Usuario usuario;
private Entrada entrada = new Entrada();
private GerBanda gerBanda = new GerBanda();
private static ImplementsBanda cad;
Banda b1 = new ImplementsBanda();
Integrante integran = new Integrante();
private static List<Usuario> bdCad = new ArrayList<Usuario>();
private static Integrante integrante = new Integrante();
private static Status status = new Status();
public void geraMenuBanda() {
boolean vai = true;
int op = 0;
while (vai) {
System.out.println("\n\n\n1) Cadastrar usuario");
System.out.println("2) Mostar cadastro usuario");
System.out.println("3) Cadastrar Banda");
System.out.println("4) Mostrar cadastro Banda");
System.out.println("5) Sair");
try {
op = Integer.parseInt(entrada.entDados("\nEscolha uma opcao"));
} catch (NumberFormatException nfe) {
entrada.entDados("\nO valor da escolha deve ser um inteiro. Press <Enter> para continuar");
continue;
}
switch(op){
case 1:
System.out.println("\n1) Cadastrar usuario");
usuario = new Usuario();
usuario = gerBanda.cadUsu(usuario);
break;
case 2:
System.out.println("\n2) Mostar cadastro usuario");
gerBanda.impAllBdCad();
break;
case 3:
System.out.println("\n3) Cadastrar Banda");
cad = new ImplementsBanda();
cad = gerBanda.cadBanda(cad);
break;
case 4:
System.out.println("\n3) Mostrar cadastro Banda");
gerBanda.impAllBandaCad();
break;
case 5:
String resp = entrada.entDados("\nDeseja realmente sair do sistema? <s/n>");
if (resp.equalsIgnoreCase("s")) {
System.exit(0);
}
break;
default:
entrada.entDados("\nA opcao deve estar entre 1 e 5");
break;
}
} //fim do while
} //fim do geraMenuBanda
}
CLASSE GerBanda
import java.util.List;
import java.util.ArrayList;
public class GerBanda {
private Usuario usuario;
Banda b1 = new ImplementsBanda();
private Entrada entrada = new Entrada();
Integrante integran = new Integrante();
private ImplementsBanda cad;
private List<Usuario> bdCad = new ArrayList<Usuario>();
private Integrante integrante = new Integrante();
private Status status = new Status();
public Usuario cadUsu(Usuario usuario) {
System.out.println("\n\nCADASTRO SIMPLES");
usuario.setNome(entrada.entDados("\nDiga o seu nome: "));
usuario.setIdadeUsu(Integer.parseInt(entrada.entDados("Diga a sua idade: ")));
try {
usuario.setCel(entrada.entDados("Informe seu numero celular: "));
} catch (InvalidCelException nfe) {
System.out.println("\n CELULAR INVALIDO!!!");
}
bdCad.add(usuario);
return usuario;
} //fim do cadUsu
public void impAllBdCad() {
for (int i = 0; i < bdCad.size(); i++) {
System.out.println("\n\n\n\n>>>>>> CADASTRO DE USUARIO <<<<<<");
System.out.println("Seu nome e: " +bdCad.get(i).getNome());
System.out.println("A sua idade e: " +bdCad.get(i).getIdadeUsu());
System.out.println("CELULAR: "+bdCad.get(i).getCel());
}
} //fim do impAllBdCad
public ImplementsBanda cadBanda(ImplementsBanda cad) {
cad.impInicio();
cad.setNome(entrada.entDados("Diga o nome da banda: "));
cad.setQtdIntegrantes(Integer.parseInt(entrada.entDados("Diga a quantidade de integrantes da banda: ")));
cad.setNomeIntegrantes(entrada.entDados("Diga o nome de cada integrante: "));
cad.setMscInfluente(entrada.entDados("Diga qual a musica mais influente ou famosa da banda: "));
//====================================================================
cad.getInfo().setEstilo(entrada.entDados("\n\n\nDiga o estilo musical da banda: "));
cad.getInfo().setLocalFundacao(entrada.entDados("Diga o local de fundacao da banda: "));
cad.getInfo().setAnoFundacao(Integer.parseInt(entrada.entDados("Diga o ano de fundacao da banda: ")));
//==============================================================
cad.getDisc().setPrimeiroAlbum(entrada.entDados("\n\n\nDiga o nome do primeiro album da banda: "));
cad.getDisc().setMscPreferida(entrada.entDados("Diga sua musica preferida da Banda: "));
cad.getDisc().setQtdAlbums(Integer.parseInt(entrada.entDados("Diga a quantidade de albums que a banda realizou: ")));
//=======================================================================
status.setNomeIntegrantes(entrada.entDados("\n\n\nDiga o nome do lider da banda: "));
status.setQtdPremios(Integer.parseInt(entrada.entDados("Quantos premios a banda ja ganhou: ")));
status.setReconhecimento(entrada.entDados("A banda e reconhecida mundialmente?: "));
status.setMscInfluente(entrada.entDados("Qual a musica mais premiada da banda: "));
//=======================================================================
cad.getTurn().setUltimaTurne(entrada.entDados("\n\n\nDiga o local ou regiao da ultima turne: "));
cad.getTurn().setPrimeiraTurne(entrada.entDados("Diga o local ou regiao da primeira turne : "));
cad.getTurn().setQtdTurnes(Integer.parseInt(entrada.entDados("Diga a quantidade de turnes realizadas: ")));
//======================================================================
integrante.setNome(entrada.entDados("\n\n\nDiga o nome do seu integrante favorito: "));
integrante.setIdade(Integer.parseInt(entrada.entDados("Diga a idade do integrante: ")));
integrante.setInstrumento(entrada.entDados("Qual a funcao dele dentro da banda: "));
//=======================================================================
return cad;
}
public void impAllBandaCad() {
//for(int i = 0; i < bdCad.size(); i++){
//===================== SOBRE A BANDA =============
System.out.println("\n\n>>>>>> INFORMACOES SOBRE A BANDA <<<<<<");
System.out.println("Nome da Banda: " + cad.getNome());
System.out.println("Quantidade integrantes: " + cad.getQtdIntegrantes());
System.out.println("Nome dos integrantes: " + cad.getNomeIntegrantes());
System.out.println("Musica mais influente ou famosa: " + cad.getMscInfluente());
//=============== INFORMAÇÕES COMPLEMENTARES ==================
System.out.println("\n\n>>>>>> INFORMACOES COMPLEMENTARES <<<<<<");
System.out.println("nEstilo musical: " + cad.getInfo().getEstilo());
System.out.println("Local de fundacao: " + cad.getInfo().getLocalFundacao());
System.out.println("Ano de fundacao: " + cad.getInfo().getAnoFundacao());
//===================== ALBUMS ========================
System.out.println("\n\n>>>>>> SOBRE OS ALBUMS <<<<<<");
System.out.println("O primeiro Algum foi: " + cad.getDisc().getPrimeiroAlbum());
System.out.println("A sua musica preferida e: " + cad.getDisc().getMscPreferida());
System.out.println("A quantidade de albums realizados foi: " + cad.getDisc().getQtdAlbums());
//===================== STATUS ==================
System.out.println("\n\n>>>>>> STATUS DA BANDA <<<<<<");
System.out.println("Lider da banda: " + status.getNomeIntegrantes());
System.out.println("Quantidade de premios ganhos: " + status.getQtdPremios());
System.out.println("Reconhecimento: " + status.getReconhecimento());
System.out.println("Musica mais premiada: " + status.getMscInfluente());
//===================== TURNES =============
System.out.println("\n\n>>>>>> SOBRE AS TURNES <<<<<<");
System.out.println("O local ou regiao da ultima turne foi : " + cad.getTurn().getUltimaTurne());
System.out.println("O local ou regiao da primeira turne foi : " + cad.getTurn().getPrimeiraTurne());
System.out.println("A quantidade de turnes feitas foi : " + cad.getTurn().getQtdTurnes());
//===================== INTEGRANTE ==============
System.out.println("\n\n>>>>>> INTEGRANTE FAVORITO <<<<<<");
System.out.println("Nome do integrante: " + integrante.getNome());
System.out.println("A idade dele e: " + integrante.getIdade());
System.out.println("A funcao dele e: " + integrante.getInstrumento());
integrante.exibeEncerrar("FINAL!!!");
} //fim do impAllBandaCad
}