You can copy the code from TablePrintable
to your own class (MyPrintable) and delete the following lines:
And override getPrintable
-Method in JTable
.
dataTable = new javax.swing.JTable(){ @Override public Printable getPrintable( PrintMode printMode, MessageFormat headerFormat, MessageFormat footerFormat ) { return new MyPrintable( this, printMode, headerFormat, footerFormat ); } };
Myprint
import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Rectangle; import java.awt.Shape; import java.awt.geom.AffineTransform; import java.awt.geom.Rectangle2D; import java.awt.print.PageFormat; import java.awt.print.Printable; import java.awt.print.PrinterException; import java.text.MessageFormat; import javax.swing.JTable; import javax.swing.table.JTableHeader; import javax.swing.table.TableColumnModel; class TablePrintable implements Printable { private JTable table; private JTableHeader header; private TableColumnModel colModel; private int totalColWidth; private JTable.PrintMode printMode; private MessageFormat headerFormat; private MessageFormat footerFormat; private int last = -1; private int row = 0; private int col = 0; private final Rectangle clip = new Rectangle(0, 0, 0, 0); private final Rectangle hclip = new Rectangle(0, 0, 0, 0); private final Rectangle tempRect = new Rectangle(0, 0, 0, 0); private static final int H_F_SPACE = 8; private static final float HEADER_FONT_SIZE = 18.0f; private static final float FOOTER_FONT_SIZE = 12.0f; private Font headerFont; private Font footerFont; public TablePrintable(JTable table, JTable.PrintMode printMode, MessageFormat headerFormat, MessageFormat footerFormat) { this.table = table; header = table.getTableHeader(); colModel = table.getColumnModel(); totalColWidth = colModel.getTotalColumnWidth(); if (header != null) {
source share