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