使用按钮在JFrame表单上打印整个面板

时间:2017-10-02 00:48:28

标签: java swing printing jframe

我目前正在制作一个包含一个小数据库的提案程序,它已经过了3天,我仍然无法解决这个问题。我一直在寻找这个问题的答案,但我所看到的只是一个没有JFrame表单的解决方案。(如果我在Netbeans上使用的那些令人困惑的JFrame表单使我的用户界面更容易让我更容易。它是一个用户界面建设者)。回到主题,每次我尝试打印我的面板时,它只打印我面板的JTable,并且不打印其他组件,如标签和文本字段。请看一下我的代码。

public void printComponenet(){

  PrinterJob pj = PrinterJob.getPrinterJob();
  pj.setJobName(" Print Component ");

  pj.setPrintable (new Printable() {    
    public int print(Graphics pg, PageFormat pf, int pageNum){
      if (pageNum > 0){
      return Printable.NO_SUCH_PAGE;
      }

      Graphics2D g2 = (Graphics2D) pg;
      AffineTransform originalTransform = g2.getTransform();

            double scaleX = pf.getImageableWidth();
            double scaleY = pf.getImageableHeight();
            double scale = Math.min(scaleX, scaleY);
        g2.translate(pf.getImageableX(), pf.getImageableY());
        g2.scale(scale, scale);
            jPanel9.printAll(g2);

g2.setTransform(originalTransform);
      return Printable.PAGE_EXISTS;
    }
  });
  if (pj.printDialog() == false)
  return;

  try {
        pj.print();
  } catch (PrinterException ex) {
        // handle exception
  }
}

以下代码是我点击自定义代码

时显示的代码
productTable = new javax.swing.JTable();

productTable.setModel(new javax.swing.table.DefaultTableModel(
    new Object [][] {

    },
    new String [] {
        "Catalogue", "XXX", "XXXX", "Total Unit Price"
    }
) {
    boolean[] canEdit = new boolean [] {
        false, false, false, false
    };

    public boolean isCellEditable(int rowIndex, int columnIndex) {
        return canEdit [columnIndex];
    }
});



productTable.addMouseListener(new java.awt.event.MouseAdapter() {
    public void mousePressed(java.awt.event.MouseEvent evt) {
        productTableMousePressed(evt);
    }
    public void mouseReleased(java.awt.event.MouseEvent evt) {
        productTableMouseReleased(evt);
    }
});

jScrollPane2.setViewportView(productTable);

if (productTable.getColumnModel().getColumnCount() > 0) {
    productTable.getColumnModel().getColumn(0).setResizable(false);
    productTable.getColumnModel().getColumn(1).setResizable(false);
    productTable.getColumnModel().getColumn(2).setResizable(false);
    productTable.getColumnModel().getColumn(3).setResizable(false);
}

我该怎么办这个问题。我希望有人能真正帮助我解决这个问题。我没时间了,我的大脑爆炸了。我很感激每一个帮助。谢谢。

0 个答案:

没有答案