Java 如何在同一页上打印不同的JComponet?

Java 如何在同一页上打印不同的JComponet?,java,swing,printing,Java,Swing,Printing,我想打印一个JFrame,里面有两样东西 我有一个Jtable,其中可能有多达500行,我需要能够打印所有这些行。 我在Jframe中的JTable下有一个JTextfield。 我想同时打印这两个。我遇到的问题是,当我打印jtable时,它只打印可见部分。我真正关心的是JTable的内容,而不是表本身 编辑:我使用Netbeans构建Gui,因此我不知道如何显示面板、表格和文本字段的代码 PrinterJob PJ = Printe

我想打印一个JFrame,里面有两样东西

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

编辑:我使用Netbeans构建Gui,因此我不知道如何显示面板、表格和文本字段的代码

                           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。其他JC组件的类似结果
任何帮助。

如何在自己的面板/容器中隔离表格和字段,打印此容器有何方法???,我的直觉是,您需要手动完成此操作,确定您拥有的空间量并缩放表格以适应,在他们需要的区域内打印其他组件,或者您可以尝试使用jasper reports,但我认为您不能将其限制在单个页面