Programación en castellano
Inicio > Tutoriales > APIS Java > Gráficos con Java 2D
-Tutoriales

Gráficos con Java 2D


Imprimir los Contenidos de un Componente

Cualquier cosa que podamos dibujar en la pantalla también puede ser imprimida. Podemos fácilmente usar un 'printable job' para imprimir el contenido de un componente.

. Ejemplo: ShapesPrint

En este ejmplo usamos el mismo código de dibujo para mostrar e imprimir los contenidos de un componente. Cuando el usuario pulsa sobre el botón print, se crea un 'print job' y se llama a printDialog para mostrar el diálogo de impresión. Si el usuario contínua con el trabajo, el proceso de impresión se inicia, y el sistema de impresión llama a print cuando sea necesario renderizar el trabajo a la impresora.

ShapesPrint es el 'page painter'. Su método print llama a drawShapes para realizar el dibujo del 'print job'. (También se llama al método drawShapes por parte de paintComponent para dibujar en la pantalla.)

public class ShapesPrint extends JPanel
                         implements Printable, ActionListener {
...
public int print(Graphics g, PageFormat pf, int pi)
                          throws PrinterException {
    if (pi >= 1) {
        return Printable.NO_SUCH_PAGE;
    }
    drawShapes((Graphics2D) g);
    return Printable.PAGE_EXISTS;
}
...
public void drawShapes(Graphics2D g2) {
    Dimension d = getSize();
    int gridWidth = 400/6;
    int gridHeight = 300/2;
    int rowspacing = 5;
    int columnspacing = 7;
    int rectWidth = gridWidth - columnspacing;
    int rectHeight = gridHeight - rowspacing;
    ...
    int x = 85;
    int y = 87;
    ...
    g2.draw(new Rectangle2D.Double(x,y,rectWidth,rectHeight));
    ...

El código de control del trabajo está en el método actionPerformed de ShapesPrint

public void actionPerformed(ActionEvent e) {
    if (e.getSource() instanceof JButton) {
        PrinterJob printJob = PrinterJob.getPrinterJob();
        printJob.setPrintable(this);
        if (printJob.printDialog()) {
            try {
                printJob.print();
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }
    }
}

Puedes encontrar el código completo de este programa en ShapesPrint.java .

 
Patrocinados
 

Copyright © 1999-2010 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Desarrollo web y diseño profesional por Color Vivo Internet. Un proyecto de los Hermanos Carrero

red internet: videos gratis | messenger gratis | decoración | juegos gratis | servidores dedicados
más internet: recursos gratis | bitácoras | gifs animados