PrinterJob job = PrinterJob.getPrinterJob();
job.setJobName("jPanel2");
job.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());
jPanel2.paint(g2);`enter code here`
return Printable.PAGE_EXISTS;
}
});
我已经使用上面的代码来打印jPanel内容。但是我想打印jTable中存在的数据。我怎样才能做到这一点?
最佳答案
public void printJavaComponent() {
PrinterJob job = PrinterJob.getPrinterJob();
job.setJobName("Print Java Component");
job.setPrintable (new Printable() {
public int print(Graphics g, PageFormat pageFormat, int pageIndex) {
if (pageIndex > 0) {
return(NO_SUCH_PAGE);
} else {
Graphics2D g2d = (Graphics2D)g;
g2d.translate(pageFormat.getImageableX(),
pageFormat.getImageableY());
component_name_to_be_printed.paint(g2d);
return(PAGE_EXISTS);
}
}
});
if (job.printDialog()) {
try {
job.print();
} catch (PrinterException e) {
System.err.println(e.getMessage());
}
}
}
请尝试此代码,我认为它可以为您提供帮助。