2011-05-09 44 views
2

在我目前正在开发的应用程序中,我有一个从表模型(我已将子模型DefaultTableModel取得数据)的JTable。当我想打印JTable时,我使用我在线上找到的一个类的修改版本,并按照它在应用程序中显示的样子(使用我的自定义单元格渲染器)完全打印它。将java JTable的多个部分打印到单个页面中

我想知道,如果任何人都可以指出我如何在同一页中打印多个表格部分。我的桌子有3列和数百行。目前,我在每页上打印三列和约。 30排。我想在每一页上打印两个部分,即一页中有两页,这样每一页的左边部分有3列30行,右边3列与下30行。

Thanx提前!

更新:除了打印:

Page 1: 

Col1 | Col2 | Col3 
val1 | val2 | val3 

Page 2: 

Col1 | Col2 | Col3 
val4 | val5 | val6 

我想打印:

Page 1: 

Col1 | Col2 | Col3   Col1 | Col2 | Col3 
val1 | val2 | val3   val4 | val5 | val6 

感谢名单!

+0

在哪个页面上?电脑显示器或什么格式的纸张(A4,美国信纸尺寸)。也很高兴知道你目前使用什么打印作为提供更具体的答案 – 2011-05-09 08:09:20

+0

A4格式,我忘了提及它。 – gpol 2011-05-09 08:11:56

+1

嗯..我不明白这是一个问题,你的_table printing_:你不是简单地设置打印机打印两页在一个? – kleopatra 2011-05-09 10:12:49

回答

1

请查看本教程Printing,(没有办法)如何只打印输出

+0

ahh另一个来自daniweb的追踪者:p – 2011-05-09 08:10:03

+0

我目前使用自定义格式进行打印。我正在寻找的是什么(并且我不确定它是否存在)可能是一种自动方式,当JTable需要多重输出时,可以打印两页。 – gpol 2011-05-09 08:13:22

+0

是解决???本教程包含JTable打印示例http://download.oracle.com/javase/tutorial/uiswing/components/table.html,对于90度旋转,您必须查找PrintRequestAttributeSet set = new HashPrintRequestAttributeSet(); set.add(OrientationRequested.LANDSCAPE); myTable.print(JTable.PrintMode.FIT_WIDTH,null,null,false,set,false); – mKorbel 2011-05-09 09:30:46

1

我一会儿回来我一直在寻找一个现成的API自己创建自定义的格式化previue。我没有发现任何可以做我想要的东西。因此,我认为你将不得不自己处理它。你需要自己做适当的计算。

例如:

  • 你需要知道它有多少页采取在正常情况下。
  • 然后您可以评估打印页面上单个页面需要多少空间。
  • 然后你移动翻译你的图形,相应地缩放,以便它适合。

我建议你先试一下,只用一个维度,只能缩放高度,以便它可以放在另一个下面,不要担心第一次放大宽度。

希望这对你有所帮助。祝你好运。

+0

非常感谢。事实上,我也在寻找一个免费的图书馆来做这件事,但我会遵循你的指导方针并尝试自己实施。 – gpol 2011-05-09 11:49:28