increase font size of the JTable
843807Jun 26 2001 — edited Jun 27 2001//I have been trying to increase the fontsize when its //prints the jtable, can someone give me a clue.
public int print(Graphics g, PageFormat pageFormat, int pageIndex) throws PrinterException
{
Graphics2D g2 = (Graphics2D) g;
g2.setColor(Color.black);
//added this to make font bigger
Font font18 = new Font("SansSerif", Font.PLAIN, 25);
g2.setFont(font18);
pageFormat.setOrientation(PageFormat.LANDSCAPE);
int fontHeight=g2.getFontMetrics(font18).getHeight();
int fontDesent=g2.getFontMetrics(font18).getDescent();
//leave room for page number
double pageHeight = pageFormat.getImageableHeight()-fontHeight;
double pageWidth = pageFormat.getImageableWidth();
double tableWidth = (double) tbl_results.getColumnModel().getTotalColumnWidth();
double scale = 1;
if (tableWidth >= pageWidth) {
scale = pageWidth / tableWidth;
}
double headerHeightOnPage = tbl_results.getTableHeader().getHeight()*scale;
double tableWidthOnPage=tableWidth*scale;
double oneRowHeight=(tbl_results.getRowHeight()+tbl_results.getRowMargin())*scale;
int numRowsOnAPage=(int)((pageHeight-headerHeightOnPage)/oneRowHeight);
double pageHeightForTable=oneRowHeight*numRowsOnAPage;
int totalNumPages= (int)Math.ceil(((double)tbl_results.getRowCount())/numRowsOnAPage);
if(pageIndex>=totalNumPages) {
return NO_SUCH_PAGE;
}
g2.translate(pageFormat.getImageableX(),pageFormat.getImageableY());
g2.drawString("Page: "+(pageIndex+1),(int)pageWidth/2-35,(int)(pageHeight+fontHeight-fontDesent));//bottom center
g2.translate(0f,headerHeightOnPage);
g2.translate(0f,-pageIndex*pageHeightForTable);
//TODO this next line treats the last page as a full page
g2.setClip(0, (int)(pageHeightForTable*pageIndex),(int)Math.ceil(tableWidthOnPage),(int) Math.ceil(pageHeightForTable));
g2.scale(scale,scale);
tbl_results.paint(g2);
g2.scale(1/scale,1/scale);
g2.translate(0f,pageIndex*pageHeightForTable);
g2.translate(0f, -headerHeightOnPage);
//g2.setClip(0, 0,(int) Math.ceil(tableWidthOnPage),(int)Math.ceil(headerHeightOnPage));
g2.setClip(0, 0,(int) Math.ceil(tableWidthOnPage),25);
g2.scale(scale,scale);
tbl_results.getTableHeader().paint(g2);//paint header at top
return Printable.PAGE_EXISTS;
}