title: Printing a Graphics Object
body: <p>I am having a problem with my code that prints a graphics object.  This exact code worked about a week ago and now when I open the file in netbeans it crashes on execution.</p>
  
  <p>This is the code:</p>
  
  <pre><code>package Project;
  
  import java.awt.*;
  import javax.swing.*;
  import java.awt.print.*;
  
  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);
        }
    }
  
    @Override
    public int print(Graphics g, PageFormat pageFormat, int pageIndex) {
      if (pageIndex &gt; 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);
    }
  }
  </code></pre>
  
  <p>Netbeans tells me that I am not Overriding the abstract method print(Graphics,PageFormat,int) when I am and the @Override tells me it is doing nothing.  </p>
  
  <p>Also the line:</p>
  
  <pre><code>Graphics2D g2d = (Graphics2D)g;
  </code></pre>
  
  <p>errors out saying it cannot convert graphics types.  I have no Idea what I am doing wrong because this exact code worked a week ago.</p>