Mega Code Archive

 
Categories / Java Tutorial / Swing
 

No user interaction to print

Show the printer dialog box and configure what the default print request attribute set entails, such as how many copies to print. public boolean print(JTable.PrintMode printMode, MessageFormat headerFormat,MessageFormat footerFormat, boolean showPrintDialog,PrintRequestAttributeSet attr, boolean interactive) import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.print.PrinterException; import java.text.MessageFormat; import javax.print.attribute.HashPrintRequestAttributeSet; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTable; public class TablePrintLastVersion {   public static void main(String args[]) {     final Object rows[][] = {       {"one",   "1"},       {"two",   "2"},       {"three", "3"},       {"four",  "4"},       {"one",   "1"},       {"two",   "2"},       {"three", "3"},       {"four",  "4"},       {"one",   "1"},       {"two",   "2"},       {"three", "3"},       {"four",  "4"},       {"one",   "1"},       {"two",   "2"},       {"three", "3"},       {"four",  "4"},     };     final Object headers[] = {"English", "#"};     JFrame frame = new JFrame("Table Printing");     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);     final JTable table = new JTable(rows, headers);     JScrollPane scrollPane = new JScrollPane(table);     frame.add(scrollPane, BorderLayout.CENTER);     JButton button = new JButton("Print");     ActionListener printAction = new ActionListener() {       public void actionPerformed(ActionEvent e) {         try {           MessageFormat headerFormat = new MessageFormat("Page {0}");           MessageFormat footerFormat = new MessageFormat("- {0} -");           table.print(JTable.PrintMode.NORMAL, headerFormat,footerFormat, true, new  HashPrintRequestAttributeSet(), true);         } catch (PrinterException pe) {           System.err.println("Error printing: " + pe.getMessage());         }       }     };     button.addActionListener(printAction);     frame.add(button, BorderLayout.SOUTH);     frame.setSize(300, 150);     frame.setVisible(true);   } }