Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在JTable前后添加用于打印的文本_Java_Swing_Printing_Jtable_Graphics2d - Fatal编程技术网

Java 在JTable前后添加用于打印的文本

Java 在JTable前后添加用于打印的文本,java,swing,printing,jtable,graphics2d,Java,Swing,Printing,Jtable,Graphics2d,我正在尝试打印一个JTable,而print()方法非常有效,直到我来到这个场景。假设我想在打印之前,只在第一页(而不是页眉)打印文本“Report”,在最后打印文本“This is end of Report”。我想再次澄清,我不需要页眉或页脚,只需要在打印时将此文本显示在第一页的顶部和最后一页的底部 如何执行此操作?执行此操作的一种方法是将一系列合适的可打印的实例附加到,如图所示 附录:JTable有一种简化事情的方法;这里有一个大纲和简单的标题可打印: PrinterJob pj = Pr

我正在尝试打印一个
JTable
,而
print()
方法非常有效,直到我来到这个场景。假设我想在打印之前,只在第一页(而不是页眉)打印文本“Report”,在最后打印文本“This is end of Report”。我想再次澄清,我不需要页眉或页脚,只需要在打印时将此文本显示在第一页的顶部和最后一页的底部


如何执行此操作?

执行此操作的一种方法是将一系列合适的
可打印的
实例
附加到,如图所示

附录:
JTable
有一种简化事情的方法;这里有一个大纲和简单的标题
可打印

PrinterJob pj = PrinterJob.getPrinterJob();
Book book = new Book();
book.append(new Title(), pj.defaultPage());
book.append(table.getPrintable(...), pj.defaultPage());
book.append(new EndPage(), pj.defaultPage());
pj.setPageable(book);
pj.print();
...
private static class Title implements Printable {

    Font font = new Font("SansSerif", Font.PLAIN, 48);

    @Override
    public int print(Graphics g, PageFormat pf, int pageIndex)
        throws PrinterException {
        Graphics2D g2d = (Graphics2D) g;
        g2d.translate(pf.getImageableX(), pf.getImageableY());
        g2d.setFont(font);
        g2d.setColor(Color.black);
        g2d.drawString("Report", 50, 200);
        return Printable.PAGE_EXISTS;
    }
}

谢谢你,但我的技术似乎还是很先进!!!只打印两行似乎很复杂。这是必须的吗?更简单的事情?我已经在上面详细阐述了;您可能需要使用平台的打印预览进行一些试验。不可能。事实上,我们都是傻瓜!好啊我想它被删除了!非常感谢。