Please help printing a JFrame and its contents
Hi, I am doing my HND Graded unit project, I am using Netbens and I have a JFrame which contains Labels and text boxes, my aim is to click a print button to produce a printed copy of the JFrame and its contents.
I have the JFrame workout screen wich has the following print method
PrintUtilities.printComponent(this);
My PrintUtilities class is the following
package fitnessguru;
import java.awt.*;
import javax.swing.*;
import java.awt.print.*;
publicclass PrintUtilitiesimplements Printable{
private Component componentToBePrinted;
publicstaticvoid printComponent(Component c){
new PrintUtilities(c).print();
}
public PrintUtilities(Component componentToBePrinted){
this.componentToBePrinted = componentToBePrinted;
}
publicvoid print(){
PrinterJob printJob = PrinterJob.getPrinterJob();
printJob.setPrintable(this);
if (printJob.printDialog())
try{
printJob.print();
}catch(PrinterException pe){
System.out.println("Error printing: " + pe);
}
}
publicint 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
*/
publicstaticvoid disableDoubleBuffering(Component c){
RepaintManager currentManager = RepaintManager.currentManager(c);
currentManager.setDoubleBufferingEnabled(false);
}
/** Re-enables double buffering globally. */
publicstaticvoid enableDoubleBuffering(Component c){
RepaintManager currentManager = RepaintManager.currentManager(c);
currentManager.setDoubleBufferingEnabled(true);
}
}
my problem is that the only thing that gets printed is a 1 label, If anyone can help print all of the JfRAME that would be great.
Thanks.

