Desculpem, me precipitei em fazer o tópico, ja resolvi tudo.
Vou deixar o código funcionando ai, so ta faltando algumas opções de pesquisa na livraria, mas a 4 ja ta funcionando.
Se alguém quiser usar, ai esta:
MAIN
package App;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import javax.swing.JOptionPane;
import Model.Class_Autor;
import Model.Class_servico;
public class Class_main {
/**
* @param args
*/
public static void main(String[] args) {
ArrayList<Class_Autor>lista= new ArrayList<Class_Autor>();
SimpleDateFormat df=new SimpleDateFormat("dd/MM/yyyy");
Date dt= new Date();
String d;
String nome,descricao,genero,cod;
String titulo,editora,cod2;
float preco;
boolean achou;
nome=JOptionPane.showInputDialog("Digite o nome do Autor ou 'fim' para finalizar: ");
if(nome.compareToIgnoreCase("fim")==0){
return;
}
while(nome.compareToIgnoreCase("fim")!=0){
cod=JOptionPane.showInputDialog("Digite o Codigo do autor:");
genero=JOptionPane.showInputDialog("O Genero de seus livros");
descricao=JOptionPane.showInputDialog("Observaçoes: ");
Class_Autor a= new Class_Autor(nome,descricao,genero,cod);
if (JOptionPane.showInputDialog("Possui livros na livraria? (S para Sim /N para Não)").equalsIgnoreCase("s")){
titulo=JOptionPane.showInputDialog("Titulo do livro ou fim");
while(titulo.compareToIgnoreCase("fim")!=0){
cod2=JOptionPane.showInputDialog("Codigo livro");
do{
d=(JOptionPane.showInputDialog("Data da publicação"));
try{
dt=df.parse(d);
achou=true;
}catch(Exception e){
achou=false;
}
}while(!achou);
editora=JOptionPane.showInputDialog("Editora ");
preco=Float.parseFloat(JOptionPane.showInputDialog("Digite o valor do livro"));
a.addClass_livro(titulo, cod2, editora, dt, preco);
titulo=JOptionPane.showInputDialog("Titulo do livro ou fim");
}
lista.add(a);
}
nome=JOptionPane.showInputDialog("Autor ou fim");
}
menu(lista);
}
public static void menu(ArrayList<Class_Autor> lista){
int val=0;
val=Integer.parseInt(JOptionPane.showInputDialog("1 :por data/n"+" 2: por autor com mais quantidade de livros/n"+ " 3: por nome do autor/n"+ " 4: por livro/n"+ " 5: sair"));
do{
switch (val) {
case 1 :
Class_servico.getData(lista);
break;
case 2 :
Class_servico.getQuantidade(lista);
break;
case 3 :
Class_servico.getAutor(lista);
break;
case 4 :
Class_servico.getLivro(lista);
break;
default:
JOptionPane.showMessageDialog(null, "Numero inválido!");
break;
}
}while(val==5);
}
}
Class_Livro
package Model;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Class_livro {
private String codigo;
private String titulo;
private String editora;
private Date dt;
private float preco;
//Constructor
public Class_livro(String titulo, String codigo, String editora,Date dt,float preco) {
this.titulo = titulo;
this.codigo = codigo;
this.editora = editora;
this.dt=dt;
this.preco=preco;
}
public String getCodigo() {
return codigo;
}
public String getTitulo() {
return titulo;
}
public String getEditora() {
return editora;
}
public Date getDt() {
return dt;
}
public float getPreco() {
return preco;
}
public String toString(){
SimpleDateFormat df= new SimpleDateFormat("dd/MM/yyyy");
return"\n Titulo: "+ this.getTitulo()+
"\n Codigo: "+ this.getCodigo()+
"\n Data: "+df.format(this.getDt())+
"\n Preço: "+ this.getPreco()+
"\n Editora: "+ this.getEditora();
}
}
Class_Autor
package Model;
import java.util.Date;
import java.util.ArrayList;
public class Class_Autor {
private String cod;
private String nome;
private String genero;
private String descricao;
private ArrayList<Class_livro> livro = new ArrayList<Class_livro>();
public ArrayList<Class_livro> getLista(){
return this.livro;
}
//Constructor
public Class_Autor(String codigo, String nome, String genero,String descricao) {
this.cod = codigo;
this.nome = nome;
this.genero = genero;
this.descricao=descricao;
}
//Agregacao
public void addClass_livro(String titulo, String codigo,String editora,Date dt,float preco){
this.livro.add(new Class_livro(titulo,codigo,editora,dt,preco));
}
public String getCod() {
return cod;
}
public String getNome() {
return nome;
}
public String getGenero() {
return genero;
}
public String getDescricao() {
return descricao;
}
public ArrayList<Class_livro> getLivro() {
return livro;
}
public String toString(){
return"\n Codigo: "+ this.getCod()+
"\n Autor: "+ this.getNome()+
"\n Genero: "+ this.getGenero()+
"\n Descriçao: "+ this.getDescricao();
}
}