// JP opened flex table

Click to See Complete Forum and Search --> : printing problem


May 31st, 2000, 05:43 PM
hi i'm using the following code to attempt to print the contents of a frame

class PrintUtilities implements Printable { private Component componentToBePrinted;

public static void printComponent(Component c) { new PrintUtilities(c).print(); }

public PrintUtilities(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); } }

/** The speed and quality of printing suffers dramatically if * any of the containers have double
buffering turned on. * So this turns if off globally. * @see enableDoubleBuffering */ public static void
disableDoubleBuffering(Component c) { RepaintManager currentManager =
RepaintManager.currentManager(c); currentManager.setDoubleBufferingEnabled(false); }

/** Re-enables double buffering globally. */

public static void enableDoubleBuffering(Component c) { RepaintManager currentManager =
RepaintManager.currentManager(c); currentManager.setDoubleBufferingEnabled(true); } }

then when i call it using a button

PrintUtilities.printComponent(window); // window is the name of the frame // I want to print

it doesn't do anything when i push the button

anybody know why

in the java console i get the following method after pressing the print button

java.lang.ClassFormatError: Class already loaded
at java.lang.ClassLoader.defineClass(Compiled Code)
at netscape.applet.AppletClassLoader.loadClass(Compiled Code)
at netscape.applet.AppletClassLoader.findClass(Compiled Code)
at netscape.applet.AppletClassLoader.loadClass1(Compiled Code)
at netscape.applet.AppletClassLoader.loadClass(Compiled Code)
at java.lang.ClassLoader.loadClassInternal(Compiled Code)
at BusCard3.action(Compiled Code)
at java.awt.Component.handleEvent(Compiled Code)
at java.awt.Component.postEvent(Compiled Code)
at java.awt.Component.postEvent(Compiled Code)
at java.awt.Component.dispatchEventImpl(Compiled Code)
* at java.awt.Component.dispatchEvent(Compiled Code)
at java.awt.EventDispatchThread$EventPump.dispatchEvents(Compiled Code)
at java.awt.EventDispatchThread.run(Compiled Code)
at netscape.applet.DerivedAppletFrame$AppletEventDispatchThread.run(Compiled Code)

//JP added flex table