hello i try to print a jtable and some text before and after my jtable. printing the jtable is ok, and some text after too. but i don't really understand the code (took from http://java.sun.com/developer/onlineTraining/Programming/JDCBook/advprint.html ) i'd like to shift the jtable below some text. someone has an idea please (excuse my english )
code: public int print(Graphics g, PageFormat pageFormat, int pageIndex)throws PrinterException { Graphics2D g2 = (Graphics2D)g; g2.setColor(Color.black); //taille de la police int fontHeight = g2.getFontMetrics().getHeight(); System.out.println(fontHeight); int fontDescent = g2.getFontMetrics().getDescent(); System.out.println(fontDescent ); // laisser de l'espace pour le numero de page //hauteur de la page double pageHeight = pageFormat.getImageableHeight() - fontHeight; System.out.println("pageHeight"+pageHeight ); //largeur de la page double pageWidth = pageFormat.getImageableWidth(); System.out.println("pageWidth"+pageWidth ); //largeur du tableau double tableWidth = (double)jTable2.getColumnModel().getTotalColumnWidth(); System.out.println("tableWidth "+tableWidth ); double scale = 1; //si lengthtableau est plus large que la page, on redimensionne if (tableWidth >= pageWidth) { scale = pageWidth / tableWidth; System.out.println("scale "+scale ); } double headerHeightOnPage = jTable2.getTableHeader().getHeight()*scale; System.out.println("headerHeightOnPage "+headerHeightOnPage ); double tableWidthOnPage = tableWidth * scale; System.out.println("tableWidthOnPage "+tableWidthOnPage ); double oneRowHeight = (jTable2.getRowHeight() + jTable2.getRowMargin())*scale; System.out.println("oneRowHeight "+oneRowHeight ); int numRowsOnAPage = (int)((pageHeight-headerHeightOnPage) / oneRowHeight); System.out.println("numRowsOnAPage "+numRowsOnAPage); double pageHeightForTable = oneRowHeight * numRowsOnAPage; System.out.println("pageHeightForTable "+pageHeightForTable); int totalNumPages = (int)Math.ceil(((double)jTable2.getRowCount()) / numRowsOnAPage); if (pageIndex >= totalNumPages) return NO_SUCH_PAGE; g2.translate(pageFormat.getImageableX()+50, pageFormat.getImageableY() +50); //(+50 decale a droite, + 50 decal en bas) // en bas au centre g2.drawString("Page: " + (pageIndex +1),(int)pageWidth/2 - 35, (int)(pageHeight + fontHeight - fontDescent)); g2.translate(0f, headerHeightOnPage ); // +50 ici decale la table vers le bas ???? touite la page vers le bas g2.translate(0f, -pageIndex*pageHeightForTable );// ici ca semble faire pareil que la ligne du dessus // si cette partie de la page est plus petite // que la taille disponible, alors découper les contours appropriés if (pageIndex + 1 == totalNumPages) { int lastRowPrinted = numRowsOnAPage * pageIndex; int numRowsLeft = jTable2.getRowCount() - lastRowPrinted; //( , +50 coupe les premieres lignesdu tableau , , ) g2.setClip(0, (int)(pageHeightForTable * pageIndex ),(int)(Math.ceil(tableWidthOnPage)),(int)Math.ceil(oneRowHeight * numRowsLeft)); } // sinon découper la zone disponible toute entière else {//( , +50 coupe les premieres lignesdu tableau , , ) g2.setClip(0, (int)(pageHeightForTable * pageIndex ),(int)(Math.ceil(tableWidthOnPage)),(int)Math.ceil(pageHeightForTable)); } g2.scale(scale, scale); jTable2.paint(g2); // dessiner les entêtes en haut 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));//( , , +50 aucun effet visible , ) g2.scale(scale, scale); jTable2.getTableHeader().paint(g2); g2.drawString((String)jComboBox1.getSelectedItem(), (int) pageWidth / 2 - 100, (int) (fontHeight - fontDescent)); return Printable.PAGE_EXISTS; } Message was edited by: lkryss [Message sent by forum member 'lkryss' (lkryss)] http://forums.java.net/jive/thread.jspa?messageID=131622 =========================================================================== To unsubscribe, send email to [EMAIL PROTECTED] and include in the body of the message "signoff JAVA2D-INTEREST". For general help, send email to [EMAIL PROTECTED] and include in the body of the message "help".