JasperReports dentro de um JFrame da própia aplicação, é possível?

1 resposta
T

Olá pessoal. Gostaria de saber se tem alguma forma de abrir um relatório do Jasper dentro de um aplicação java .
Montei um relatório no iReport e ele está funcionando perfeitamente na minha aplicação e é visualizado com viewReport. Acho que este viewReport é interessante mais para teste e seria mais profissional se o relatório aparecesse dentro da janela da própia aplicação, sem o ícone do Jasper na barra de titulo. Andei pesquisando na net e vi que tem bastante gente com esta mesma dúvida mas não vi solução.
Se não tiver geito, pelo menos gostaria de tirar o ícone do Jasper da barra de título e que a janela do viewReport fosse axibida na frente do frame principal da minha aplicação, pois sempre que é gerado aparece atrás.

1 Resposta

T

Consegui! :D

Exemplo de como ficou meu código:
//Método da Classe do JFrame principal
private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {
    if (desktop.getAllFrames().length!=0){
         desktop.getSelectedFrame().dispose();
    }
    ConsultaNotaFiscalFio cNF =new ConsultaNotaFiscalFio();
    Relatorio r = new Relatorio();

    JFrame jf = new JFrame("Teste");
   
    JInternalFrame i = new JInternalFrame("teste");

    i.setContentPane(r.gerarRelatorio(21).getContentPane() );
    desktop.add(i);
    desktop.selectFrame(true);
    try {
        i.setSize(desktop.getSize());
        i.setClosable(true);
        i.setMaximum(true);
        i.setVisible(true);
    } catch (Exception exception) {
    }
} 


//Método da classe Relatório
public  JasperViewer gerarRelatorio(int num) {
       Map parametros = new HashMap();

       // Passa o parâmetro com o número da nota fiscal do fio para o iReport
       parametros.put("NroNotaFiscal", new Long(num) );

       // Passa o parâmetro com com o subrelatório para o iReport
       parametros.put("PathItensNFTecido",
                     urlFile + "/gerenciamento/itensProcesso.jasper");
                  
	try{    	
            JasperPrint jasperPrint =JasperFillManager.fillReport(
                    getClass().getResourceAsStream("/tecelembu/gerenciamento/NF.jasper"),
                    parametros, getConnect());
     
         JasperViewer v = new JasperViewer(jasperPrint, false);
  
         return v;

        } catch (JRException ex) {
            Logger.getLogger(Relatorio.class.getName()).log(Level.SEVERE, null, ex);
            ex.printStackTrace();
            return null;
        }
        					
 }
Criado 27 de março de 2009
Ultima resposta 27 de mar. de 2009
Respostas 1
Participantes 1