[quote=thiagocg]Vc debugou? Ta dando erro nessa linha né?
InputStream relJasper = getClass().getResourceAsStream(caminhoRelJasper);
Se for isso, é pq ele não esta achando o caminho onde vc salvou o seu .jasper, eu sempre crio uma pasta no projeto onde ficam todos os relatorios, dai sempre passo no caminho essa minha pasta.
Sera esse seu problema?[/quote]
Consegui resolver aqui Thiago! Ele não conseguia achar o relatório porque estava com problema nas seguites linhas:
impressao = JasperFillManager.fillReport(relJasper, parametros, ds);
JasperViewer viewer = new JasperViewer(impressao, true);
então eu substitui por:
String jasperPrint = JasperFillManager.fillReportToFile( "Livros.jasper", parametros, ds );
JasperViewer viewer = new JasperViewer(jasperPrint, false, false);
E acrescentei:
viewer.setExtendedState(JasperViewer.MAXIMIZED_BOTH);
Ficando assim:
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.view.JasperViewer;
public class Inicio {
public void exibirRelatorio() {
// Caminho do .jasper do relatorio
String caminhoRelJasper = "Livros.jasper";
// Lista com beans
List listaLivros = getLivros();
// Stream com o .jasper
InputStream relJasper = getClass().getResourceAsStream(caminhoRelJasper);
JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(listaLivros);
// Parametros do relatorios
Map parametros = new HashMap();
JasperPrint impressao = null;
try {
String jasperPrint = JasperFillManager.fillReportToFile( "Livros.jasper", parametros, ds );
JasperViewer viewer = new JasperViewer(jasperPrint, false, false);// O segundo false serve para que a janela do relatório fique: DISPOSE_ON_CLOSE
viewer.setExtendedState(JasperViewer.MAXIMIZED_BOTH);
viewer.setVisible(true);
} catch (JRException e) {
System.out.println(e.getMessage());
}
}
public List getLivros() {
List listaLivros = new ArrayList();
Livro livro = new Livro();
livro.setTitulo("Use a cabeça! Padrões de Projeto ? Design Patterns");
livro.setAutor("Freeman, Eric / Freeman, Elisabeth");
livro.setIsbn("8576080869");
livro.setEditora("Alta Books");
livro
.setDescricao("Como você sabe que não quer reinventar a roda (ou, "
+ "pior, um pneu furado), "
+ "então você busca padrões de projetos");
listaLivros.add(livro);
livro = new Livro();
livro.setTitulo("Entendendo e Dominando o Linux");
livro.setAutor("Morimoto, Carlos");
livro.setIsbn("8589535339");
livro.setEditora("Digerati");
livro
.setDescricao("Como o nome diz, este livro é uma obra destinada a "
+ "todos aqueles que "
+ "pretendem conhecer na prática e em detalhes os "
+ "principais recursos oferecidos pelo Linux");
listaLivros.add(livro);
livro = new Livro();
livro.setTitulo("Guia de Certificação em Java ? Exame CX-310-035");
livro.setAutor("Pereira, Rafael");
livro.setIsbn("8573934263");
livro.setEditora("Ciência Moderna");
livro.setDescricao("Este Guia de Certificação em Java é um livro "
+ "fundamental para preparar os"
+ " candidatos ao exame de programador Java da Sun, "
+ "a primeira e mais "
+ "requisitada certificação desta tecnologia.");
listaLivros.add(livro);
return listaLivros;
}
public static void main(String[] args) {
new Inicio().exibirRelatorio();
}
}
Valeu pela força!
T+