1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
public class PrintUtilities implements Printable {
private JComponent componentToBePrinted = null;
public static void printComponent(JComponent c) {
new PrintUtilities(c).print();
}
public PrintUtilities(JComponent componentToBePrinted) {
this.componentToBePrinted = componentToBePrinted;
}
public void print() {
PrinterJob printJob = PrinterJob.getPrinterJob();
printJob.setPrintable(this);
if ( printJob.printDialog() )
try {
printJob.print();
} catch ( PrinterException pe ) {
JOptionPane.showMessageDialog(null, "Il y a eu un problème lors de l'impression" );
}
}
/* (non-Javadoc)
* @see java.awt.print.Printable#print(java.awt.Graphics, java.awt.print.PageFormat, int)
*/
public int print(Graphics g, PageFormat pageFormat, int pageIndex)
throws PrinterException {
if (pageIndex > 0 )
return NO_SUCH_PAGE;
Graphics2D g2d = (Graphics2D)g;
g2d.translate( pageFormat.getImageableX(), pageFormat.getImageableY() );
disableDoubleBuffering(this.componentToBePrinted);
this.componentToBePrinted.paint(g2d);
enableDoubleBuffering(this.componentToBePrinted);
return PAGE_EXISTS;
}
public static void disableDoubleBuffering(JComponent c) {
RepaintManager currentManager = RepaintManager.currentManager(c);
currentManager.setDoubleBufferingEnabled(false);
}
public static void enableDoubleBuffering(JComponent c) {
RepaintManager currentManager = RepaintManager.currentManager(c);
currentManager.setDoubleBufferingEnabled(true);
}
} |
Partager