Come stampare un object JTable nell’applicazione Java

Domanda Ora una volta che i dati sono stati recuperati dal database e visualizzati nella “tabella” dell’object JTable incorporata nello scrollPane, come si crea un lavoro di stampa che consente di stampare la tabella visualizzata come tale in formato A3?

Il mio codice per recuperare i dati dal database è mostrato di seguito:

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); } 

Sto usando la class vettoriale per recuperare i dati dalla tabella. Come si stampano i dati mostrati nella tabella visualizzata su un foglio?

basta usare il metodo JTable.print() . ecco un articolo sull’invio di JTable alla stampante e un altro con più parametri

Ovviamente non hai letto i collegamenti forniti nella tua domanda precedente .

Dalla sezione Stampa di Come usare le tabelle

Stampa

JTable fornisce una semplice API per stampare tabelle. Il modo più semplice per stampare una tabella è invocare JTable.print senza argomenti:

 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()); } 

Invocare la stampa su una normale applicazione Swing fa apparire una finestra di dialogo di stampa standard. (In un’applicazione headless, la tabella viene semplicemente stampata.) Il valore restituito indica se l’utente è andato avanti con il lavoro di stampa o lo ha annullato. JTable.print può lanciare java.awt.print.PrinterException, che è un’eccezione controllata; questo è il motivo per cui l’esempio precedente utilizza un try … catch.

JTable offre diversi sovraccarichi di stampa con varie opzioni. Il seguente codice di TablePrintDemo.java mostra come definire un’intestazione di pagina:

MessageFormat header = new MessageFormat (“Pagina {0, number, integer}”);

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

Per applicazioni di stampa più sofisticate, utilizzare JTable.getPrintable per ottenere un object stampabile per la tabella. Per ulteriori informazioni sulla versione stampabile, consultare la lezione di stampa nella traccia grafica 2D.

spero ti aiuti con questo codice provalo per Come stampare JTable in Java netbeans

  private void btn_printActionPerformsd(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); } }