Hola a todos, es la primera vez que escribo en este foro y, cómo no, es para pedir ayuda.
Estoy creando una aplicación que muestra un informe creado con iReport, funciona bien, pero cuando cierro la ventana de la vista preliminar. se cierra el programa. Porgo el código por si sabeis donde puedo estar equivocándome, ya que he buscado por todas pares y no encuentro la solución.
public class Factura {
String numerofactura = "";
String tipofactura = "";
String emprfactura = "";
String ejerfactura = "";
//establecemos la conexión con la base de datos
Gestion mysql = new Gestion();
Connection con = mysql.conectar();
public void runReporte(){
numerofactura = Facturas.txb_cfNumero.getText();
tipofactura = Facturas.txb_cfTipo.getText();
emprfactura = Gestion.Empresa;
ejerfactura = Gestion.Ejercicio;
String ruta = "/home/manolo/Proyectos/Gestion/src/reportes/factura.jasper";
try {
JasperReport reporte = (JasperReport)JRLoader.loadObjectFromFile(ruta);
Map parametros = new HashMap();
parametros.put("NumFactura", numerofactura);
parametros.put("TipoFactura", tipofactura);
parametros.put("EmpFactur", emprfactura);
parametros.put("EmpEjerci", ejerfactura);
JasperPrint print = JasperFillManager.fillReport(reporte, parametros, con);
JasperViewer jviewer = new JasperViewer(print,false);
jviewer.setTitle("Facturas");
jviewer.setVisible(true);
JasperViewer.viewReport(print);
} catch (Exception j) {
JOptionPane.showMessageDialog(null, j);
}
}
public void cerrar(){
try {
con.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
Muchas gracias por adelantado y espero no equivocarme de lugar para colocar la pregunta.
Un saludo.