代码之家  ›  专栏  ›  技术社区  ›  shivshnkr

向JPanel添加打印按钮[重复]

  •  2
  • shivshnkr  · 技术社区  · 12 年前

    我有一个JPanel,里面有一些组件,比如按钮、标签、表格等。

    我想做的是添加一个功能(jButton),点击该按钮可以指示我打印整个面板,以及标签和组件。 请帮忙。

    1 回复  |  直到 12 年前
        1
  •  0
  •   S. Esteves Cheddar    7 年前

    只需制作一个JButton即可调用以下代码:

    public void printComponent() {
    
      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());
          componenet_name.paint(g2);
          return Printable.PAGE_EXISTS;
        }
      });
    
      if (pj.printDialog() == false) return;
    
      try {
        pj.print();
      } catch (PrinterException ex) {
        // handle exception
      }
    }
    

    (摘自: How can I print a single JPanel's contents? )