Buenas tardes,
Pense que en el método
imprimir() te crearías un jasperPrint, no un printJob, no puedo ayudarte ya que siempre imprimo mediante jasperReport. Tu Frame si no he leído y entendido mal sólo tiene un un label, un textfield y el botón imprimir, y lo que pretendes con la impresión es un hoja en la que en el centro figure el texto del textfield, con jasper esto es facilito.
Ireport:
1. Crea un report llamado "informe".
2. Crea un
parameter o
parametro llamado "texto".
3. Arrastrar el parametro a la seccion
Detail, te debería aparecer un recuadro con "$P{texto}".
4. Compila el report.
Java:
Código java:
Ver originalJasperPrint print = new JasperPrint();
File rutaCarpetaExpediente
= new File(tuRutadelInforme
);
if (!rutaCarpetaExpediente.exists()) {
rutaCarpetaExpediente.mkdir();
}
parameters.put("texto", cadena);
try {
//Archivo de impresion
print
= JasperFillManager.
fillReport(rutaCarpetaExpediente.
getAbsolutePath() + File.
separatorChar + "informe.jasper", parameters
); } catch (JRException ex) {
ex.printStackTrace();
}
//Mostramos la pantalla de impresion
JasperViewer view = new JasperViewer(print, false);
view.setVisible(true);
No lo he probado, pero si funciona no debería tardar nada...
Un saludo y buen día.