如何在同一页面上打印不同的组件?

时间:2015-01-03 00:54:22

标签: java swing printing

我想在其中打印一个包含两个内容的JFrame。

我有一个Jtable,其中可能有多达500行,我需要能够打印所有这些。 我在Jframe中的JTable下有一个JTextfield。 我想同时打印这两个。我遇到的问题是当我打印jtable时它只打印可见部分。我真正关心的是JTable的内容,而不是表本身。

编辑:我使用Netbeans构建我的Gui,所以我真的不知道如何显示Panel,Table和TextFields的代码。

                           PrinterJob PJ   =   PrinterJob.getPrinterJob();
                       PJ.setPrintable(this);
                    boolean doPrint = PJ.printDialog();

       JOptionPane.showMessageDialog(null, doPrint);
        if(doPrint){
            try {

                PJ.print();
            } catch (PrinterException ex) {
                JOptionPane.showMessageDialog(null, ex.getMessage());
           }
        } 

我在这里有打印方法

   public int print(Graphics g, PageFormat format, int page_index) throws PrinterException {
    if (page_index > 0) {
        return Printable.NO_SUCH_PAGE;
    }
      // get the bounds of the component
    Dimension dim = this.getSize();
    double cHeight = dim.getHeight();
    double cWidth = dim.getWidth();

    // get the bounds of the printable area
    double pHeight = format.getImageableHeight();
    double pWidth = format.getImageableWidth();

    double pXStart = format.getImageableX();
    double pYStart = format.getImageableY();

    double xRatio = pWidth / cWidth;
   double yRatio = pHeight / cHeight;


    Graphics2D g2 = (Graphics2D) g;
    g2.translate(pXStart, pYStart);
    g2.scale(xRatio, yRatio);
    this.paint(g);
     this.print(g);
    return (Printable.PAGE_EXISTS);
}

现在,当我使用这段代码时,它会给我完整的帧图像,也只给出了分析的jtable ..

1.我想要的是如何省略按钮

2.将我的jlables,jTextFields和我的Jtable打印在同一页面上,因为它将是一个商店... 现在,当我使用 jtable.print(); 时,它只显示页面上的jtable ..其他JComponents的相似结果 任何帮助..我可以这样做吗

0 个答案:

没有答案