【问题标题】:Java - How to print row numbers on each page?Java - 如何在每页上打印行号?
【发布时间】:2013-02-21 09:28:01
【问题描述】:

我正在努力以自己的方式打印 JTable。这是我在打印时想要获得的:

       Page 1        Page 2        Page 3
    |  1  2  3 |  |  4  5  6 |  |  7  8  9 |
    |1         |  |1         |  |1         |
    |2         |  |2         |  |2         |
    |3         |  |3         |  |3         |

       Page 4        Page 5        Page 6
    |  1  2  3 |  |  4  5  6 |  |  7  8  9 |
    |4         |  |4         |  |4         |
    |5         |  |5         |  |5         |
    |6         |  |6         |  |6         |

如您所见,我想在每一页上获取 tableHeader(我成功获取!),以及每一页上的行号。有没有人做过这样的事情?

这就是我的 JTable 的管理方式:

scrollPane = new JScrollPane();
scrollPane.setViewportView(table);     // basic JTable
scrollPane.setRowHeaderView(rowTable); // basic JTable with only 1 column
tableHeader = table.getTableHeader();  //
scrollPane.setColumnHeaderView(tableHeader);

我尝试在javax.swing.TablePrintable 中执行类似操作,即每次剪辑时计算打印表格的位置,但没有成功:行号仅打印在第一页上。我有点绝望,有什么想法吗?

编辑:这里有一些图片(太大,无法在此处发布)显示我目前获得的内容以及我想要获得的内容:

  • 第 1 页和第 2 页:http://i.imgur.com/euzeq70.png

    如您所见,第二页上的行号应该相同,因为它是表格的左侧(表格的宽度适合 2 页)

  • 第 3 页和第 4 页:http://i.imgur.com/YCFLu4X.png

    桌子的中间部分。如您所见,现在行号不应该是1 ... 49,而是50 ... 99,它们仍然不会显示在左侧页面上

  • 第 5 和 6 页:http://i.imgur.com/4xugX4j.png

    表格的底部。行号应为100,并出现在左侧页面上。

我希望现在更清楚了。

【问题讨论】:

  • 您能发布您的打印代码吗?
  • 有点大,所以没贴出来。实际上它非常接近 javax.swing.TablePrintable 中的内容,我尝试在其上添加行号打印。
  • 是的,可能重复,因为是我。这次我试图更清楚地解释我的问题。
  • 你能上传一张照片吗?那会很有帮助

标签: java swing printing jtable awt


【解决方案1】:

我认为最容易获得解决方案是生成类似的东西

public class WrapPrintable implements Printable

并覆盖

 public int print(final Graphics graphics,
               final PageFormat pageFormat,
               int pageIndex) throws PrinterException {

为 Paperformat 设置添加额外的页眉和/或页脚空间,并编写一些方法,如

Graphics2D g2d = printGraphics(graphics, pageFormat, pageIndex, format);

printGraphics 会进行页眉/页脚调整,您需要自己创建...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-04
    • 2011-11-16
    • 2012-03-08
    • 2021-08-16
    • 2011-01-08
    • 1970-01-01
    • 1970-01-01
    • 2013-05-13
    相关资源
    最近更新 更多