Tookit kt=Toolkit.getDefaultTookit();
PrintJob job=tk.getPrintJob(this,"title",null);
Graphics g=job.getGraphics;
panel1,printAll(g);
g.dispose();
job.end();

解决方案 »

  1.   

    java打印时,首先创建一个PrintJob对象,在java.awt.Tookit中有这样的方法可以得到PrintJob的实例:
    public abstract PrintJob getPrintJob(Frame parent,String jobname,Properties props);
    进行打印工作时,必须与一个Frame的实例相联系,得到一个PrintJob对象后,就可以调用PrintJob对象的方法getGraphics来打印所需要打印的各个页面,
    public abstract Graphics getGraphics();
    每个Graphics的新实例代表一个新的单独打印页,打印完所有的页面后,可以调用PrintJob中的end方法来完成打印工作
      

  2.   

    我这里手头上没有打印机
    谁帮忙调试一下这个程序
    谢谢
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.print.*;
    import java.applet.Applet;public class print extends Applet{
      Button printButton = new Button( "Print" );
      public void init(){
        printButton.addActionListener( new PrintListener() );
        add( printButton );
      } 
      class PrintListener implements ActionListener{
        public void actionPerformed( ActionEvent e ){
          PrinterJob pj = PrinterJob.getPrinterJob();
          pj.setPrintable(new ImagePrintable());
          if (pj.printDialog()) {
            try { 
              pj.print(); 
            }catch ( PrinterException pe) {
              System.out.println( "Print when exception " );
            }
          }
        }  
      }
      class ImagePrintable implements Printable{
        public int print(Graphics g, PageFormat pf, int pageIndex) {
          if (pageIndex != 0) return Printable.NO_SUCH_PAGE;
    //      Graphics2D g2 = (Graphics2D)g;
          print.this.paint( g );
          return Printable.PAGE_EXISTS;
        }
      }
      
    }