如何打印单个JPanel的内容?

Tal*_*kir 21 java printing swing

我有JPanel两个带图片的标签.我需要打印这些内容JPanel.请帮帮我.我怎么才能打印这个JPanel内容,因为我也有不同的组件,JFrame但我只需要打印 JPanel.

谢谢.

Tal*_*kir 24

这是打印任何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
  }
}
Run Code Online (Sandbox Code Playgroud)

  • 如何在页面中相应地缩放组件以使其适合? (2认同)

hbw*_*hbw 5

一种简单的方法是实现Printable接口(在 中java.awt.print)并添加指定的print方法(它的工作方式类似于paint此处的 \xe2\x80\x94,您可以指定要在打印页面上绘制的组件)。当您想要实际打印面板的内容时,获取一个PrinterJob实例并调用其setPrintable方法,传递实现的对象Printable

\n\n

不过,这只是一个快速概述。我建议您查看Sun 的打印教程以获取更多信息。

\n