Re: Is this program right?
 
smart wrote:
      JMenuItem menuFilePrint = new JMenuItem("Print");
       menuFile.add(menuFilePrint);
       menuFilePrint.addActionListener(addHandlerPrint);
       menuFilePrint.setMnemonic('r');
       ActionListener addHandlerPrint = new ActionListener()
      {
      	public void actionPerformed(ActionEvent e)
         {
         	String command = e.getActionCommand ();
           if (command.equals ("Print"))
           {
              print ();
           }
    	  } // end of actionperformed of Print
    	}; // end of ActionListener of Print
         public void print ()
    	{
                    // Create the PrintJob object
                    PrintJob pjb = getToolkit ().getPrintJob (this,"Print Test",
null);
                    if (pjb != null)
                    {
                        Graphics pg = pjb.getGraphics ();
                       if (pg != null)
                        {
                           paint (pg);// Paint all components on the frame
                           pg.dispose (); // flush page
                        }
                       pjb.end (); // close print job
                    } //  end of the if condition of pjb
         }   // print
Please help me when i press print button in menu. I have include any
drivers in my prg
Thanks
I haven't used the PrintJob in a long time.  I use the PrinterJob now. 
Below is a sample code to draw an image with that method.  Just edit the 
image file name to something you have.
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import java.awt.print.*;
import java.io.*;
import javax.imageio.*;
import javax.swing.*;
public class test extends JPanel implements Printable {
     final BufferedImage bi;
     final int w,h;
     volatile static PageFormat pf;
     public test() throws IOException {
         bi = ImageIO.read(new File("kittens.jpg"));
         w = bi.getWidth();
         h = bi.getHeight();
         setPreferredSize(new Dimension(w,h));
     }
     void render(Graphics g, boolean printerFlag) {
         if (printerFlag) {
             double aspect = (double)w / h;
             g.drawImage(bi,
              (int)pf.getImageableX(),
              (int)pf.getImageableY(),
              (int)pf.getImageableWidth(),
              (int)(pf.getImageableWidth()/aspect),null);
         } else
             g.drawImage(bi,0,0,w,h,null);
     }
     public void paintComponent(Graphics g) {
         render(g, false);
     }
     public int print(Graphics g, PageFormat pageFormat, int pageIndex) {
         int retcod = Printable.PAGE_EXISTS;
         if (pageIndex == 0) {
             pf = pageFormat;
             render(g, true);
         } else
             retcod = Printable.NO_SUCH_PAGE;
         return retcod;
     }
     public static void main(String[] args) {
         EventQueue.invokeLater(new Runnable() {
             public void run() {
                 try {
                     JFrame f = new JFrame("test");
                     f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                     final test t = new test();
                     f.add(t,BorderLayout.CENTER);
                     JButton b = new JButton("Print");
                     b.addActionListener(new ActionListener() {
                         public void actionPerformed(ActionEvent ae) {
                             PrinterJob pj = PrinterJob.getPrinterJob();
                             pj.setPrintable(t);
//                            pf = pj.pageDialog(pj.defaultPage());
                             if (pj.printDialog()) {
                                 try {
                                     pj.print();
                                 } catch (PrinterException pe) {
                                     pe.printStackTrace();
                                 }
                             }
                         }
                     });
                     f.add(b,BorderLayout.SOUTH);
                     f.pack();
                     f.setVisible(true);
                 } catch (IOException ioe) {
                     ioe.printStackTrace();
                 }
             }
         });
     }
}
-- 
Knute Johnson
email s/nospam/knute/
--
Posted via NewsDemon.com - Premium Uncensored Newsgroup Service
      ------->>>>>>http://www.NewsDemon.com<<<<<<------
Unlimited Access, Anonymous Accounts, Uncensored Broadband Access