gpt4 book ai didi

Java - 如何在每页上打印行号?

转载 作者:行者123 更新时间:2023-12-04 01:31:09 24 4
gpt4 key购买 nike

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

       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

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

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

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

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

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

我希望现在更清楚了。

最佳答案

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

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 进行页眉/页脚调整,您需要自己创建...我已经这样做过一次,但是代码很容易爆炸,因此只有很小的一部分碎片。

关于Java - 如何在每页上打印行号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14998649/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com