¿Cómo puedo imprimir el contenido de un solo JPanel?

Tengo un JPanel con dos tags con imágenes. Necesito imprimir este contenido del JPanel . Por favor, ayúdame. ¿Cómo puedo imprimir solo los contenidos de este JPanel , ya que también tengo diferentes componentes en mi JFrame pero solo necesito imprimir este JPanel ?

Gracias.

Aquí hay un ejemplo para imprimir cualquier componente de Swing.

 public void printComponenet(Component component){ PrinterJob pj = PrinterJob.getPrinterJob(); pj.setJobName(" Print Component "); pj.setPrintable (new Printable() { public int print(Graphics pg, PageFormat pf, int pageNum){ if (pageNum > 0){ return Printable.NO_SUCH_PAGE; } Graphics2D g2 = (Graphics2D) pg; g2.translate(pf.getImageableX(), pf.getImageableY()); component.paint(g2); return Printable.PAGE_EXISTS; } }); if (pj.printDialog() == false) return; try { pj.print(); } catch (PrinterException ex) { // handle exception } } 

Una forma simple de hacerlo sería implementar la interfaz Printable (en java.awt.print ) y agregar el método de print especificado (funciona de manera similar a la paint Aquí, puede especificar qué componentes desea dibujar en la página impresa. ) Y cuando realmente desee imprimir el contenido del panel, obtenga una instancia de PrinterJob y llame a su método setPrintable , pasando el objeto que implementó Printable .

Sin embargo, es solo una descripción general rápida. Recomiendo echar un vistazo al tutorial de Sun sobre impresión para obtener más información.

simplemente edite y coloque el nombre de su marco, panel (jPanel1) y botón (imprimir). ‘esto’ se refiere a la clase JFrame (es decir, mi clase extiende javax.swing.JFrame) simplemente ponga la referencia de su marco en lugar de ‘esto’.

 private void PritnActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: Toolkit tkp = jPanel1.getToolkit(); PrintJob pjp = tkp.getPrintJob(this, null, null); Graphics g = pjp.getGraphics(); jPanel1.print(g); g.dispose(); pjp.end(); }