Cómo imprimir un objeto JTable en la aplicación Java

Pregunta Ahora, una vez que los datos se obtienen de la base de datos y se muestran en la “tabla” de objetos JTable incrustada en el scrollPane, ¿cómo creamos un trabajo de impresión que permita imprimir la tabla mostrada como tal en papel de tamaño A3?

Mi código para recuperar los datos de la base de datos se muestra a continuación:

try { Class.forName("com.mysql.jdbc.Driver"); Connection con=DriverManager.getConnection("jdbc:mysql://localhost/newb","root","pass"); Statement stat=con.createStatement(); ResultSet res=stat.executeQuery("select * from table where name = '"+name+"'"); ResultSetMetaData rsmd = res.getMetaData(); int colcount = rsmd.getColumnCount(); Vector columns = new Vector(colcount); for(int i=3; i<=colcount; i++) { columns.add(rsmd.getColumnName(i)); } Vector data = new Vector(); Vector row; // Store row data while(res.next()) { row = new Vector(colcount); for(int i=3; i<=colcount; i++) { row.add(res.getString(i)); } data.add(row); } table = new JTable(data, columns); table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); scrollPane.setViewportView(table); } catch(Exception ex) { System.out.println(ex); } 

Estoy usando la clase vectorial para buscar los datos de la tabla. ¿Cómo imprimimos los datos que se muestran en la tabla mostrada en un papel?

solo use el método JTable.print() . aquí hay un artículo sobre el envío de JTable a la impresora y otro con más parámetros

Obviamente no leíste los enlaces provistos en tu pregunta anterior .

Desde la sección de Impresión de Cómo usar tablas

Impresión

JTable proporciona una API simple para imprimir tablas. La forma más fácil de imprimir una tabla es invocar JTable.print sin argumentos:

 try { if (! table.print()) { System.err.println("User cancelled printing"); } } catch (java.awt.print.PrinterException e) { System.err.format("Cannot print %s%n", e.getMessage()); } 

Invocar impresión en una aplicación Swing normal muestra un cuadro de diálogo de impresión estándar. (En una aplicación sin cabeza, la tabla simplemente se imprime.) El valor de retorno indica si el usuario siguió adelante con el trabajo de impresión o lo canceló. JTable.print puede lanzar java.awt.print.PrinterException, que es una excepción comprobada; es por eso que el ejemplo anterior usa un try … catch.

JTable proporciona varias sobrecargas de impresión con varias opciones. El siguiente código de TablePrintDemo.java muestra cómo definir un encabezado de página:

MessageFormat header = new MessageFormat (“Página {0, número, entero}”);

 try { table.print(JTable.PrintMode.FIT_WIDTH, header, null); } catch (java.awt.print.PrinterException e) { System.err.format("Cannot print %s%n", e.getMessage()); } 

Para aplicaciones de impresión más sofisticadas, use JTable.getPrintable para obtener un objeto imprimible para la tabla. Para obtener más información sobre Imprimible, consulte la lección Impresión en el recorrido de gráficos 2D.

Espero ayudarte con este código. Pruébalo. Cómo imprimir JTable en Java netbeans.

  private void btn_printActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: MessageFormat header = new MessageFormat("Print Report"); MessageFormat footer = new MessageFormat("Page{0,number,integer}"); try { table_employee.print(JTable.PrintMode.FIT_WIDTH, header, footer); } catch (java.awt.print.PrinterAbortException e) { } catch (PrinterException ex) { Logger.getLogger(employee_info.class.getName()).log(Level.SEVERE, null, ex); } }