Boa noite pessoal, criei uma tela em Java para chamada do meu relatório, desenvolvi em JasperSoft, porém quando aciono o botão para impressão gera um view em branco, quando executo pelo Jasper funciona corretamente, segue o código.
Obs:- Copiei o caminho direto do Jasper para não ter erro.
package RelWeb;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
import java.sql.DriverManager;
import static net.sf.jasperreports.engine.JasperFillManager.fillReport;
import java.awt.event.*;
import net.sf.jasperreports.engine.JREmptyDataSource;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.view.JasperViewer;
import javax.swing.*;
public class Botao extends JPanel {
private static final long serialVersionUID = 1L;
protected static final Connection Conecta = null;
protected static final Connection Con = null;
private JButton btMensagem;
private ImageIcon imageIcon1;
public Connection getConexao() throws SQLException, ClassNotFoundException {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conexao = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "projeto", "projeto");
return conexao;
}
public Botao() throws ClassNotFoundException, SQLException {
inicializarComponentes();
definirEventos();
}
private void inicializarComponentes() {
setLayout(null);
imageIcon1 = new ImageIcon("java.jpg");
btMensagem = new JButton("Mensagem", imageIcon1);
btMensagem.setBounds(320, 420, 140, 38);
add(btMensagem);
}
private void definirEventos () throws ClassNotFoundException, SQLException {
Conecta2 conecta = new Conecta2();
btMensagem.addActionListener(new ActionListener() {
private Map parametros;
@SuppressWarnings("static-access")
public void actionPerformed(ActionEvent e) {
try {
new Conecta2();
Connection con = Conecta2.getConnection();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
int confirma = JOptionPane.showConfirmDialog(null, "Confirma a impressão", "Atenção", JOptionPane.YES_NO_OPTION);
if(confirma == JOptionPane.YES_OPTION) {
String src = "C:/Users/Computador/JaspersoftWorkspace/MyReports/RelatorioEstoque.jasper";
JasperPrint impressao = null;
try {
JOptionPane.showMessageDialog(null,"Vou executar o Jasper agora");
impressao = JasperFillManager.fillReport(src, parametros, getConexao());
JasperViewer viewer = new JasperViewer(impressao, true);
viewer.setVisible(true);
} catch (Exception ex) {
JOptionPane.showMessageDialog(getRootPane(), "Erro ao Gerar Relatorio \n" + ex);
}
}
}
});
}
}