Source Code : Book demo

Java Is Open Source Programming Language You Can Download From Java and Java Libraries From http://www.oracle.com. Click Here to download
We provide this code related to title for you to solve your developing problem easily. Libraries which is import in this program you can download from http://www.oracle.com. Click Here or search from google with Libraries Name you get jar file related it

Book demo

Book demo
    

import java.awt.BorderLayout;
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Container;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.geom.Line2D;
import java.awt.geom.Point2D;
import java.awt.print.Book;
import java.awt.print.PageFormat;
import java.awt.print.Printable;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;
import java.util.Vector;

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.border.TitledBorder;

public class BookDemo extends JFrame {
  DrawingCanvas canvas;

  JRadioButton portraitButton = new JRadioButton("Portrait", true);

  JRadioButton landscapeButton = new JRadioButton("Landscape");

  JRadioButton rLandscapeButton = new JRadioButton("Reverse Landscape");

  JButton addButton = new JButton("Add to Book");

  JButton printButton = new JButton("Print");

  JButton clearButton = new JButton("Clear");

  public BookDemo() {
    super();
    Container container = getContentPane();

    canvas = new DrawingCanvas();
    container.add(canvas);

    JPanel panel = new JPanel(new GridLayout(2, 6));
    container.add(panel, BorderLayout.SOUTH);

    ButtonGroup gp = new ButtonGroup();
    gp.add(portraitButton);
    gp.add(landscapeButton);
    gp.add(rLandscapeButton);

    ActionListener buttonListener = new ButtonListener();
    portraitButton.addActionListener(buttonListener);
    landscapeButton.addActionListener(buttonListener);
    rLandscapeButton.addActionListener(buttonListener);

    panel.add(portraitButton);
    panel.add(landscapeButton);
    panel.add(rLandscapeButton);

    addButton.addActionListener(buttonListener);
    printButton.addActionListener(buttonListener);
    clearButton.addActionListener(buttonListener);

    panel.add(addButton);
    panel.add(printButton);
    panel.add(clearButton);

    addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent e) {
        System.exit(0);
      }
    });
    setSize(450, 425);
    setVisible(true);
  }

  public static void main(String arg[]) {
    new BookDemo();
  }

  class ButtonListener implements ActionListener {
    PrinterJob jobControl;

    PageFormat pageFormat;

    Book book;

    ButtonListener() {
      jobControl = PrinterJob.getPrinterJob();
      pageFormat = jobControl.defaultPage();
      book = new Book();
    }

    public void actionPerformed(ActionEvent e) {
      Object obj = e.getSource();

      if (obj instanceof JRadioButton) {
        JRadioButton tempButton = (JRadioButton) obj;

        if (tempButton.equals(portraitButton)) {
          pageFormat.setOrientation(PageFormat.PORTRAIT);
        }

        else if (tempButton.equals(landscapeButton)) {
          pageFormat.setOrientation(PageFormat.LANDSCAPE);
        } else if (tempButton.equals(rLandscapeButton)) {
          pageFormat.setOrientation(PageFormat.REVERSE_LANDSCAPE);
        }
      } else if (obj instanceof JButton) {
        JButton tempButton = (JButton) obj;

        if (tempButton.equals(addButton)) {
          book.append(new PrintableCanvas(canvas.getShapesVector()),
              (PageFormat) pageFormat.clone());
        } else if (tempButton.equals(printButton)) {
          jobControl.setPageable(book);

          if (jobControl.printDialog()) {
            try {
              jobControl.print();
            } catch (Exception pe) {
              System.out.println("Printing Exception Occured!");
              pe.printStackTrace();
            }
          }
        } else if (tempButton.equals(clearButton)) {
          canvas.shapesVector.clear();
          canvas.clear = true;
          canvas.repaint();
        }
      }
    }
  }

  class DrawingCanvas extends Canvas {
    private Vector shapesVector;

    Point2D currPoint, newPoint;

    Line2D line;

    boolean clear = false;

    DrawingCanvas() {
      shapesVector = new Vector();

      addMouseListener(new MouseHandler());
      addMouseMotionListener(new MouseMotionHandler());

      setBackground(Color.white);
      setSize(450, 400); 
    }

    public Vector getShapesVector() {
      return shapesVector;
    }

    public void update(Graphics g) {
      Graphics2D g2D = (Graphics2D) g;

      g2D.setColor(Color.black);

      if (currPoint != null && newPoint != null) {
        line = new Line2D.Float(currPoint, newPoint);
        g2D.draw(line);
        shapesVector.addElement(line);
      }
      currPoint = newPoint; 

      if (clear) {
        g2D.setColor(Color.white);
        g2D.fillRect(0, 0, getWidth(), getHeight());
        clear = false;
      }
    }

    public void paint(Graphics g) {
      Graphics2D g2D = (Graphics2D) g;

      g2D.setColor(Color.black);

      for (int i = 0; i < shapesVector.size(); i++) {
        Line2D.Float line2D = (Line2D.Float) shapesVector.elementAt(i);
        g2D.draw(line2D);
      }
    }

    class MouseHandler extends MouseAdapter {
      public void mousePressed(MouseEvent e) {
        currPoint = newPoint = e.getPoint();
        repaint();
      }
    }

    class MouseMotionHandler extends MouseMotionAdapter {
      public void mouseDragged(MouseEvent e) {
        newPoint = e.getPoint();
        repaint();
      }
    }
  }

  class PrintableCanvas implements Printable {
    private Vector linesVector;

    public PrintableCanvas(Vector vector) {
      linesVector = (Vector) vector.clone();
    }

    public int print(Graphics pg, PageFormat pf, int pi)
        throws PrinterException {
      Graphics2D pg2D = (Graphics2D) pg;

      pg2D.translate(pf.getImageableX(), pf.getImageableY());

      pg2D.setPaint(Color.green);
      pg2D.drawString(" ", 100, 100);

      pg2D.setPaint(Color.black);
      for (int i = 0; i < linesVector.size(); i++) {
        Line2D.Float line2D = (Line2D.Float) linesVector.elementAt(i);
        pg2D.draw(line2D);
      }

      return Printable.PAGE_EXISTS;
    }
  }
}

           
         
    
    
    
  

Thank with us