//import the packages for using the classes in them into the program import java.awt.*; import java.awt.print.*; import javax.swing.*; /** *A class for creating a printer option. */ public class Print implements Printable { private Component componentToBePrinted; public static void printComponent( Component c ) { new Print( c ).print(); } public Print( Component componentToBePrinted ){ this.componentToBePrinted = componentToBePrinted; } public void print() { PrinterJob printJob = PrinterJob.getPrinterJob(); printJob.setPrintable( this ); if( printJob.printDialog() ) { try { printJob.print(); } catch( PrinterException pe ) { System.out.println( "Error printing: " + pe ); } } } public int print( Graphics g, PageFormat pageFormat, int pageIndex ) { if( pageIndex > 0 ) { return ( NO_SUCH_PAGE ); } else { Graphics2D g2d = ( Graphics2D )g; g2d.translate( pageFormat.getImageableX(), pageFormat.getImageableY() ); disableDoubleBuffering( componentToBePrinted ); componentToBePrinted.paint( g2d ); enableDoubleBuffering( componentToBePrinted ); return ( PAGE_EXISTS ); } } public static void disableDoubleBuffering( Component c ) { RepaintManager currentManager = RepaintManager.currentManager( c ); currentManager.setDoubleBufferingEnabled( false ); } public static void enableDoubleBuffering( Component c ) { RepaintManager currentManager = RepaintManager.currentManager( c ); currentManager.setDoubleBufferingEnabled( true ); } }