在Java的同一页面上打印2个JTable

时间:2018-07-09 20:08:21

标签: java jtable

我有2个JTable,我想将它们打印在同一页上。现在,我对Java的了解很高,只能使我能够在2个单独的页面上进行打印。以下是我正在研究的内容的摘录。我想在同一页面上打印userTable和compTable。谢谢您的帮助

public void printTable(int type)
    {
        if(type == 0)
        {

        }
        else
        {
            userTable.getTableHeader().setFont(mainFont);
            userTable.setFont(mainFont);


            compTable.getTableHeader().setFont(mainFont);
            compTable.setFont(mainFont);

            MessageFormat header = new MessageFormat("Certificate Values");
            MessageFormat footer = new MessageFormat("Page{0,number,integer}");

            MessageFormat header1 = new MessageFormat("Interpolated Values");
            MessageFormat footer1 = new MessageFormat("Page{0,number,integer}");

            try
            {   
                userTable.print( JTable.PrintMode.FIT_WIDTH, header, footer);
                compTable.print( JTable.PrintMode.FIT_WIDTH, header1, footer1);
            }
            catch (PrinterException ex)
            {
                // TODO Auto-generated catch block
                ex.printStackTrace();
            }
        }
    }

1 个答案:

答案 0 :(得分:0)

这是我尝试过的东西,下面的代码。该程序将表数据,格式提取为HTML表,并提取HTML内容。生成的HTML作为编辑器内容显示在JEditorPane中。通过JEditorPane的{​​{1}}方法,可以将页面内的内容打印为两个表。

注释:

  1. 如果表的大小(行)不变,则可以。另外,请注意,生成的HTML是非常基本的,并且有更多完善的解决方案(可以通过Google搜索找到)。
  2. print()仅支持HTML 3.2。这意味着有限的CSS和 样式功能。如果人们正在寻找更多样式,则可以在JavaFX的JEditorPane中显示生成的HTML内容并进行打印。
  3. 另一个选项是在网络浏览器中显示生成的HTML并打印。
  4. 已经建议使用Apache POI。

HtmlTablePrinter.java

WebView