public
class Reporte implements Runnable{Connection con;
public Reporte(Connectio con){
this.con = con ; //de esta manera mandamos la coneccion
}
public void run() {
try{
//inicializamos la rtua
String rutaReporte =
"unaRuta/unReporte.jasper";//Si existen parametros los mandamos por un Hash
HashMap parametros =
new HashMap();parametros.put(
"PARAMETRO_UNO", new Integer(1));parametros.put("PARAMETRO_DOS",new Integer(2));
//los parametros pueden ser de cualquier tipo
//empezamos con jasper
//Mandamos los datos al Jasper
JasperPrint jasperPrint = JasperFillManager.fillReport(rutaReporte, parametros,con);//Mnadamos al Viewer
JasperViewer jviewer = new JasperViewer(jasperPrint,false);
//Lo mostramos
jviewer.setVisible(true);
}catch(Exception e){
System.err.println("Error al lanzar el reporte");
}
}
}
Hasta aqui es el reporte
Ahora el metodo que sera invocado por el boton
private void buttonImprimir(){
Reporte reporte = new Reporte(con) //recurden que mandamos la coneccion
Thread hilo = new Thread(reporte)
thilo.start();
}
Eso seria todo, el boton mandaria ejecutar el reporte en un hilo aparte, el cual generara nuestro reporte y terminara.
Saludos y suerte.