我现在的这个项目就有打印JTable的,但我不能在公司上网,不好给你。明天没事
研究一下,如果搞懂了明天告诉你。(如果还没打印出来的话)

解决方案 »

  1.   

    我这几天在写类似的程序,但是因为手边没有打印机,所以无法测试,但是全是按照sun的例子作的:)class MyTable extends JPanel implements java.awt.print.Printable{
       //面板内容
    }public class myApp{
       //添加一个mytable
       MyTable mytable=new MyTable();   //下面是打印mytable的代码,一般是把它放在按钮的动作里
       PrinterJob printJob = PrinterJob.getPrinterJob();
       printJob.setPrintable(mytable);        
       if(printJob.printDialog()){
          try{
             printJob.print();  
          }catch (Exception ex){
             ex.printStackTrace();
          }
       }
    }
      

  2.   

    请问peacock_king, 在哪能找到sun的例子?
      

  3.   

    看看这个把,很有帮助!
    http://www.chinabs.net/java/default.asp?infoid=47
      

  4.   

    peacock_king朋友,你的例子好象打出来是空的.
    eshen2002(eshen)朋友,能不能将研究结果发给我?我的确是没时间去研究它.
    谢谢!
      

  5.   


    import java.awt.Graphics;
    import java.awt.print.*;import javax.swing.*;
    /**
     * <p>Title: </p>
     * <p>Description: </p>
     * <p>Copyright: Copyright (c) 2003</p>
     * <p>Company: </p>
     * @author not attributable
     * @version 1.0
     */public class PrinterTest implements Printable {  JComponent component ;
      private PrinterTest() {
      }//自己调整页面
      public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {    if(pageIndex>=1)
          return Printable.NO_SUCH_PAGE;    component.paint(graphics);     return Printable.PAGE_EXISTS;  }  private void setTable(JTable tb){
       component=tb;
      }
      public static  void printTable(JTable tb){
        PrinterTest test = new PrinterTest();
        test.setTable(tb);
        PrinterJob job = PrinterJob.getPrinterJob();    job.setPrintable(test);
        try{
          job.print();
        }catch(PrinterException e){
          e.printStackTrace();
        }  }
      

  6.   

    请问javafounder朋友,上面的例子只是将一个JComponent打印出来,能不能将一个JPanel内的多个JComponent一次打印出来?而不是一个个地打?
      

  7.   

    可以啊,你只要把JPanel传进去就好了,其实,说白了,这个方法就是在打印接口的graphics中的画你的控件,跟画在显示器里的一样,不过,你得自己调整边距等等。