I created a CRUD from a library, but when I instantiated the class Biblioteca
in main
, and I went to execute that giant error occurred:
ClassCadastrar
:
packageOperacoes;importjava.util.InputMismatchException;importjava.util.Scanner;importEntidades.Autor;importEntidades.Editora;importEntidades.Livro;importRepositorioLivros.Biblioteca;publicclassCadastrar{ScannerscannerNumerico=newScanner(System.in);ScannerscannerString=newScanner(System.in);Bibliotecabiblioteca=newBiblioteca();//AutorpublicvoidcadastrarAutor(){try{Autorautor=newAutor();System.out.println("Digite o nome:");
autor.setNome(scannerString.nextLine());
System.out.println("Digite o nacionalidade:");
autor.setNacionalidade(scannerString.nextLine());
System.out.println("Digite o codigo:");
autor.setCodigo(scannerNumerico.nextInt());
System.out.println("Digite o email:");
autor.setEmail(scannerString.nextLine());
biblioteca.cadastarAutor(autor);
}catch(Exception e){
System.out.println("Error: Algum dado não foi digitado corretamente");
}
}
//Editora
public void cadastrarEditora(){
try{
Editora editora= new Editora();
System.out.println("Digite o nome:");
editora.setNome(scannerString.nextLine());
System.out.println("Digite o código:");
editora.setCodigo(scannerNumerico.nextInt());
System.out.println("Digite o CNPJ:");
editora.setCnpj(scannerNumerico.nextInt());
biblioteca.cadastrarEditora(editora);
}catch(Exception e){
System.out.println("Error: Algum dado não foi digitado corretamente");
}
}
//Livro
public void cadastrarLivro(){
try{
Livro livro= new Livro();
System.out.println("Digite o nome do livro:");
livro.setNome(scannerString.nextLine());
System.out.println("Digite o código do livro:");
livro.setCodigo(scannerNumerico.nextInt());
System.out.println("Digite o ano do livro:");
livro.setAno(scannerNumerico.nextInt());
System.out.println("Forneça a editora do livro:");
livro.setEditora(scannerString.nextLine());
biblioteca.cadastrarLivro(livro);
}catch(Exception e){
System.out.println("Error: Algum dado não digitado corretamente");
}
}
//Menu com as opções
public void escolherOpcao(){
int opc=0;
System.out.println("-====== MENU: CADASTRAR ======-\n\n" +
"1) Cadastrar autor \n" +
"2) Cadastar Editora \n" +
"3) Cadastrar Livro\n"+
"4) Voltar"+
"5) Sair");
boolean flag = true;
while(flag){
/*Enquanto a flag for verdadeira, ou seja, quando houver erro,
o while irá repetir a opção pro usuário digitar novamente*/
System.out.println("Digite a opção desejada:");
try{
opc=scannerNumerico.nextInt();
flag = false;
// quando Ñ houver erro a flag vai ser falsa, e o programa segue normalmente
}catch(InputMismatchException e){
System.out.println("Error: Só pode digitar números inteiros de 1 a 5");
}
}
switch(opc){
case 1:{
this.cadastrarAutor();
break;
}
case 2:{
this.cadastrarEditora();
break;
}
case 3:{
this.cadastrarLivro();
break;
}
//voltar ao menu
case 4:{
break;
}
case 5:{
System.exit(0);
break;
}
default:{
break;
}
}//chave do Switch
}//chave do método do menu
}
Class Biblioteca
:
package RepositorioLivros;
import java.util.ArrayList;
import java.util.Scanner;
import javax.swing.JOptionPane;
import Entidades.Autor;
import Entidades.Editora;
import Entidades.Livro;
import Operacoes.Cadastrar;
import Operacoes.Editar;
import Operacoes.Excluir;
import Operacoes.ExcluirTudo;
import Operacoes.Listar;
import Operacoes.Pesquisar;
public class Biblioteca {
Scanner scannerNumerico = new Scanner(System.in);
Scanner scannerString = new Scanner(System.in);
//Instância das classes das operações
Cadastrar cadastro=new Cadastrar();
Editar editar=new Editar();
Pesquisar pesquisar=new Pesquisar();
Listar listar=new Listar();
Excluir excluir=new Excluir();
ExcluirTudo excluirTudo=new ExcluirTudo();
String result;
// Array list das entidades
ArrayList <Autor> autores= new ArrayList<Autor>();
ArrayList<Editora> editora= new ArrayList<Editora>();
ArrayList<Livro> livro= new ArrayList<Livro>();
//Menus
public void Menu() {
int opc=0;
System.out.println("-======MENU======-\n\n" +
"1. Cadastrar\n" +
"2. Editar\n" +
"3. Pesquisar\n" +
"4. Listar\n" +
"5. Excluir\n" +
"6. Excluir tudo\n" +
"7. Sair");
boolean flag=true;
while(flag){
System.out.println("Digite a opção desejada:");
try{
opc=scannerNumerico.nextInt();
flag=false;
}catch(Exception e){
System.out.println("Só pode digitar números inteiros de 1 a 7");
}
}
switch(opc){
//Opções de cadastro
case 1:{
cadastro.escolherOpcao();
break;
}
//Opções de editar
case 2:{
editar.Menu();
break;
}
//Opções de pesquisar
case 3:{
pesquisar.Menu();
break;
}
//Opções de listar
case 4:{
listar.Menu();
break;
}
//Opções de excluir
case 5:{
excluir.menu();
break;
}
//Opções de excluir tudo
case 6:{
excluirTudo.Menu();
break;
}
//Sair
case 7:{
System.out.println("Obrigado por usar meu sistema !");
System.exit(0);
break;
}
default:{
break;
}
}
}
//Autores
public void cadastarAutor(Autor autor) {
this.autores.add(autor);
}
public String ListarAutores() {
for(int i=0; i<autores.size(); i++){
result="Código:"+autores.get(i).getCodigo()+
"\nNome:"+autores.get(i).getNome()+
"\nNacionalidade"+autores.get(i).getNacionalidade()+
"\nEmail:"+autores.get(i).getEmail();
}
return result;
}
public Autor pesquisarAutor(int codigo) {
for(int i=0; i<autores.size(); i++){
if(autores.get(i).getCodigo()==codigo)
return autores.get(i);
}
}
return null;
}
public void removerAutorAnterior(Autor codigo) {
autores.remove(codigo);
}
public void removerTodosAtores() {
autores.clear();
}
//Editora
public void cadastrarEditora(Editora editora) {
this.editora.add(editora);
}
public String listarEditora() {
for(int i=0; i<editora.size(); i++){
result="Nome\n"+editora.get(i).getNome()+
"\nCNPJ"+editora.get(i).getCnpj()+
"\nCódigo"+editora.get(i).getCodigo();
}
return result;
}
public Editora pesquisarEditora(int codigo) {
for(int i=0; i<editora.size(); i++){
if(editora.get(i).getCodigo()==codigo){
editora.get(i);
}
}
return null;
}
public void removerEditoraAnterior(Editora codigo) {
editora.remove(codigo);
}
public void removerTodasEditoras() {
editora.clear();
}
//Livro
public void cadastrarLivro(Livro livro) {
this.livro.add(livro);
}
public String listarLivro() {
for(int i=0; i<livro.size(); i++){
result= "Nome:\n"+livro.get(i).getNome()+
"Código:"+livro.get(i).getCodigo()+
"\nAno:"+livro.get(i).getAno()+
"Editora:"+livro.get(i).getEditora();
}
return result;
}
public Livro pesquisarLivro(int codigo) {
for(int i=0; i<livro.size(); i++){
if(livro.get(i).getCodigo()==codigo){
livro.get(i);
}
}
return null;
}
public void revomerLivroAnterior(Livro codigo) {
this.livro.remove(codigo);
}
public void removerTodosLivros() {
livro.clear();
}
}
I'll put the complete code in my GitHub, because it's too big: link
First look at class Biblioteca
and class Cadastrar
, I think there must be something wrong in one of the two.