如何打印单个JPanel的内容?
我有一个带有两个带图片标签的JPanel
。 我需要打印JPanel
这些内容。 请帮帮我。 我怎么才能打印这个JPanel
的内容,因为我的JFrame
上也有不同的组件,但我只需要打印这个 JPanel
。
谢谢。
以下是打印任何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 } }
一个简单的方法是实现Printable
接口(在java.awt.print
)并添加指定的print
方法(它的工作方式类似于paint
-in,你可以指定你想要在打印页面上绘制哪些组件)。 当您想要实际打印面板的内容时,获取PrinterJob
实例并调用其setPrintable
方法,传递实现Printable
的对象。
不过,这只是一个快速概述。 我建议您查看Sun的打印教程以获取更多信息。
只需编辑并输入框架,面板(jPanel1)和按钮(打印)的名称。 ‘this’指的是JFrame类(即我的类扩展javax.swing.JFrame)只是放置框架的引用而不是’this’。
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(); }
- PrintWriter和PrintStream永远不会抛出IOExceptions
- com.microsoft.sqlserver.jdbc.SQLServerException:与主机localhost,端口1433的TCP / IP连接失败
- 如何在Executor服务中执行长时间执行任务(例如,无限循环)
- spring boot rabbitmq MappingJackson2MessageConverter自定义对象转换
- 检查数字是否是Java中的整数
- 为什么Java的String.getBytes()使用“ISO-8859-1”
- Hibernate“PreInsertEvent.getSource()”NoSuchMethodError
- 我怎么能得到所有在Java(递归)中有重复的组合?
- 将自定义标识符分配给@id属性
- 使用testng中的DataProvider从文件中读取数据
- 如何使用mapStruct映射使用@XMLSeeAlso注释的JAXB元素?