de.jsystems.framework.print
Class PrintObject

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjavax.swing.JComponent
              extended byjavax.swing.JPanel
                  extended byde.jsystems.framework.print.PrintObject
All Implemented Interfaces:
Accessible, ImageObserver, MenuContainer, Printable, Serializable
Direct Known Subclasses:
FilePrinter, TableModelPrinter, TextPrinter, ViewPrinter

public abstract class PrintObject
extends JPanel
implements Printable

Abstrakte Klasse für druckbare Objekte. Wird in der Klasse Vorschau benutzt, um in Abhängigkeit des benutzen Druckers die Seiteneinstellungen vornehmen zu können. Ableitende Klassen müssen nur noch die Methode initPrintView(Graphics2D) überschreiben um festzulegen was gedruckt werden soll.

Version:
1.0
Copyright by Jens Homm 2001 - 2003
Author:
Jens Homm JSYSTEMS
See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
 
Nested classes inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
static int CENTER
          Zentrierte Positionierung
protected  double dh
          Druckbereich höhe
protected  double dw
          Druckbereich breite
protected  double dx
          Druckbereichanfang links oben(Spalte)
protected  double dy
          Druckbereichanfang links oben(Zeile)
static int LEFT
          Linksbündige Positionierung
protected  PageFormat pageFormat
          Seitenformat
protected  double ph
          Höhe der Seite
protected  PrinterJob printerJob
          Drucker
protected  double pw
          Breite der Seite
static int RIGHT
          Rechtsbündige Positionierung
protected  int seitenrand
          Seitenrand
protected  double zoomfaktor
          Zoomfaktor
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Container
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.print.Printable
NO_SUCH_PAGE, PAGE_EXISTS
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
PrintObject(PrinterJob printerJob, PageFormat pageFormat)
          Erzeugt ein neues druckbares Objekt.
 
Method Summary
 PageFormat getPageFormat()
          Gibt das PageFormat dieses PrintObject zurück.
 PrinterJob getPrinterJob()
          Gibt das aktuelle PrinterJob-Objekt zurück.
 double getZoomfaktor()
          Gibt den aktuell eingestellten Zoomfaktor zurück.
protected abstract  void initPrintView(Graphics2D g2D)
          Hier wird das gezeichnet, was nachher auf dem Drucker erscheinen soll.
protected  void paintComponent(Graphics g)
          Hier werden die Seitenraender fuer die Seite grafisch dargestellt.
 int print(Graphics graphics, PageFormat pageFormat, int pageIndex)
          Diese Methode wird aufgerufen wenn wirklich fgedruckt werden soll.
protected  int printImage(Image bild, Graphics g2d, PageFormat pf, int posy, int breite, int hoehe, int orientation)
          Zeichnet an der angegebenen Position das übergebene Bild auf die Seite.
protected  int printImage(Image bild, Graphics g2d, PageFormat pf, int posx, int posy, int breite, int hoehe, int orientation)
          Zeichnet an der angegebenen Position das übergebene Bild auf die Seite.
protected  int printString(String text, Font font, Color color, Graphics2D g2d, PageFormat pf, int posy, int orientation)
          Formatiert einen String mit den übergebenen Einstellungen.
protected  int printString(String text, Font font, Color color, Graphics2D g2d, PageFormat pf, int posx, int posy, int orientation)
          Formatiert einen String mit den übergebenen Einstellungen.
protected  int printTabelle(Object[][] data, Font font, Color color, Graphics2D g2d, PageFormat pf, int posy, int orientation)
          Zeichnet an der angegebenen Position eine Tabelle mit den Daten aus dem Array.
protected  int printTabelle(Object[][] data, Font font, Color color, Graphics2D g2d, PageFormat pf, int posx, int posy, int orientation)
          Zeichnet an der angegebenen Position eine Tabelle mit den Daten aus dem Array.
 void setZoomfaktor(double zoomfaktor)
          Zoomfaktor neu festlegen.
 void showPageLayoutDialog()
          Zeigt für den aktuellen Drucker einen Dialog mit den Eigenschaften der Seite an.
 void showPrinterDialog()
          Zeigt den Dialog zur Auswahl eines neuen Druckers an.
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

CENTER

public static final int CENTER
Zentrierte Positionierung

See Also:
Constant Field Values

LEFT

public static final int LEFT
Linksbündige Positionierung

See Also:
Constant Field Values

RIGHT

public static final int RIGHT
Rechtsbündige Positionierung

See Also:
Constant Field Values

printerJob

protected PrinterJob printerJob
Drucker


pageFormat

protected PageFormat pageFormat
Seitenformat


pw

protected double pw
Breite der Seite


ph

protected double ph
Höhe der Seite


dx

protected double dx
Druckbereichanfang links oben(Spalte)


dy

protected double dy
Druckbereichanfang links oben(Zeile)


dw

protected double dw
Druckbereich breite


dh

protected double dh
Druckbereich höhe


seitenrand

protected int seitenrand
Seitenrand


zoomfaktor

protected double zoomfaktor
Zoomfaktor

Constructor Detail

PrintObject

public PrintObject(PrinterJob printerJob,
                   PageFormat pageFormat)
Erzeugt ein neues druckbares Objekt. Hier wird der Hintergrund auf dunkelgrau gesetzt und die Groesse des Panels festgelegt. Diese ergibt sich aus der Groesse des uebergebenen PageFormat-Objektes sowie eines Seitenrandes von 10 und einem Zoomfaktor von 0.5. Der Zoomfaktor spielt fuer die Klasse Vorschau eine Rolle, da in der Vorschau das Objekt auch vergroesser werden kann.

Parameters:
printerJob - Eine abstrakte Verbindung zumzu benutzenden Drucker.
pageFormat - Das Format der Seite auf der gedruckt werden soll.
Method Detail

paintComponent

protected void paintComponent(Graphics g)
Hier werden die Seitenraender fuer die Seite grafisch dargestellt. Somit kann man in der Klasse Vorschau sehen, wie sich aenderungen in der Druckerauswahl oder der Druckereinstellung auf das Druckergebnis auswirken. Im Ausdruck erscheinen diese Linien nachher uebrigens nicht mehr.

Parameters:
g - Das Graphis-Objekt, dessen Inhalt gedruckt wird.

initPrintView

protected abstract void initPrintView(Graphics2D g2D)
Hier wird das gezeichnet, was nachher auf dem Drucker erscheinen soll. Muß in abgeleiteten Klassen überschrieben werden. Das uebergebene Graphics-Objekt ist in der Groesse exakt auf den druckbaren Bereich der Seite eingestellt. Es kann also ohne Einschraenkung auf jeden Punkt des Graphics-Objektes gezeichnet werden und das gezeichnete ist komplett auf der gedruckten Seite sichtbar.

Parameters:
g2D - Das Graphics-Objekt dessen Inhalt nachher auch gedruckt werden soll.

print

public int print(Graphics graphics,
                 PageFormat pageFormat,
                 int pageIndex)
          throws PrinterException
Diese Methode wird aufgerufen wenn wirklich fgedruckt werden soll. Der uebergebene Graphics-Bereich wird hier auf den Bereich begrenzt, der auf der Seite auch bedruckbar ist. Anschliessend wird die Methode initPrintView(Graphics2D) aufgerufen, die dann den eigentlich zu druckenden Inhalt zur Verfuegung stellt.

Specified by:
print in interface Printable
Parameters:
graphics - Das Graphics-Objekt, dessen Inhalt gedruckt werden soll.
pageFormat - Das Format der Seite die bedruckt wird.
pageIndex - Der Index der zu druckenden Seite.
Returns:
PAGE_EXISTS wenn die Seite vorhanden ist und gedruckt wurde oder NO_SUCH_PAGE, wenn pageIndex eine nicht vorhandene Seite bezeichnet.
Throws:
PrinterException - wenn beim Drucken ein Fehler auftritt.

printString

protected int printString(String text,
                          Font font,
                          Color color,
                          Graphics2D g2d,
                          PageFormat pf,
                          int posy,
                          int orientation)
Formatiert einen String mit den übergebenen Einstellungen. Dieser wird auf der Seite in der angegebenen Zeile ausgedruckt. Die Spalte, ab der die Ausrichtung(Parameter orientation) beginnt, ist 0. Diese Methode sollte nur aus der Methode initPrintView aufgerufen werden. Falls der übergebene String leer ist wird nichts gedruckt. Fuer den Parameter orientation sind die folgenden Werte zulaessig:
  • LEFT
  • RIGHT
  • CENTER

    Parameters:
    text - Der zu druckende Text.
    font - Die Schrift in der gedruckt werden soll.
    color - Die Farbe in der gedruckt werden soll.
    g2d - Das Graphicsobjekt, auf dem gedruckt werden soll.
    pf - Die aktuellen Seiteneinstellungen.
    posy - Y-Position an der gedruckt wird(Zeile).
    orientation - Ausrichtung des zu druckenden Textes(LEFT, RIGHT, CENTER).
    Returns:
    Die Position der nächsten Zeile auf dem Papier nach dem hinzufügen des Textes.

  • printString

    protected int printString(String text,
                              Font font,
                              Color color,
                              Graphics2D g2d,
                              PageFormat pf,
                              int posx,
                              int posy,
                              int orientation)
    Formatiert einen String mit den übergebenen Einstellungen. Dieser wird auf der Seite an der angegebenen Position ausgedruckt. Falls die Spaltenkoordinate(posx) kleiner als 0 ist wird sie auf 0 gesetzt. Diese Methode sollte nur aus der Methode initPrintView aufgerufen werden. Falls der übergebene String leer ist wird nichts gedruckt. Fuer den Parameter orientation sind die folgenden Werte zulaessig:
  • LEFT
  • RIGHT
  • CENTER

    Parameters:
    text - Der zu druckende Text.
    font - Die Schrift in der gedruckt werden soll.
    color - Die Farbe in der gedruckt werden soll.
    g2d - Das Graphicsobjekt, auf dem gedruckt werden soll.
    pf - Die aktuellen Seiteneinstellungen.
    posx - X-Position an der gedruckt wird(Ab hier beginnt dann die linke Seite. Das ist wichtig für die Ausrichtung.).
    posy - Y-Position an der gedruckt wird(Zeile).
    orientation - Ausrichtung des zu druckenden Textes(LEFT, RIGHT, CENTER).
    Returns:
    Die Position der nächsten Zeile auf dem Papier nach dem hinzufügen des Textes.

  • printImage

    protected int printImage(Image bild,
                             Graphics g2d,
                             PageFormat pf,
                             int posy,
                             int breite,
                             int hoehe,
                             int orientation)
    Zeichnet an der angegebenen Position das übergebene Bild auf die Seite. Dabei wird das Bild entsprechend der Parameter formatiert. Der linke Rand, auf den sich die Positionierung bezieht ist dabei der äußerste linke Rand im druckbaren Bereich. Diese Methode sollte nur aus der Methode initPrintView aufgerufen werden. Fuer den Parameter orientation sind die folgenden Werte zulaessig:
  • LEFT
  • RIGHT
  • CENTER

    Parameters:
    bild - Das zu druckende Bild.
    g2d - Das Graphicsobjekt, auf dem gedruckt werden soll.
    pf - Die aktuellen Seiteneinstellungen.
    posy - Y-Position an der gedruckt wird(Zeile).
    breite - Breite des Bildes.
    hoehe - Höhe de Bildes.
    orientation - Ausrichtung des zu druckenden Bildes(LEFT, RIGHT, CENTER).
    Returns:
    Die Position der nächsten Zeile auf dem Papier nach dem hinzufügen des Bildes.

  • printImage

    protected int printImage(Image bild,
                             Graphics g2d,
                             PageFormat pf,
                             int posx,
                             int posy,
                             int breite,
                             int hoehe,
                             int orientation)
    Zeichnet an der angegebenen Position das übergebene Bild auf die Seite. Dabei wird das Bild entsprechend der Parameter formatiert. Der linke Rand, auf den sich die Positionierung bezieht ist dabei der äußerste linke Rand im druckbaren Bereich. Falls die Spaltenkoordinate(posx) kleiner als 0 ist wird sie auf 0 gesetzt. Diese Methode sollte nur aus der Methode initPrintView aufgerufen werden. Fuer den Parameter orientation sind die folgenden Werte zulaessig:
  • LEFT
  • RIGHT
  • CENTER

    Parameters:
    bild - Das zu druckende Bild.
    g2d - Das Graphicsobjekt, auf dem gedruckt werden soll.
    pf - Die aktuellen Seiteneinstellungen.
    posx - X-Position an der gedruckt wird(Ab hier beginnt dann die linke Seite. Das ist wichtig für die Ausrichtung.).
    posy - Y-Position an der gedruckt wird(Zeile).
    breite - Breite des Bildes.
    hoehe - Höhe de Bildes.
    orientation - Ausrichtung des zu druckenden Bildes(LEFT, RIGHT, CENTER).
    Returns:
    Die Position der nächsten Zeile auf dem Papier nach dem hinzufügen des Bildes.

  • printTabelle

    protected int printTabelle(Object[][] data,
                               Font font,
                               Color color,
                               Graphics2D g2d,
                               PageFormat pf,
                               int posy,
                               int orientation)
    Zeichnet an der angegebenen Position eine Tabelle mit den Daten aus dem Array. Dabei wird die Tabelle entsprechend der Parameter formatiert. Der linke Rand, auf den sich die Positionierung bezieht ist dabei der äußerste linke Rand im druckbaren Bereich. Diese Methode sollte nur aus der Methode initPrintView aufgerufen werden. Fuer den Parameter orientation sind die folgenden Werte zulaessig:
  • LEFT
  • RIGHT
  • CENTER

    Parameters:
    data - Array mit den Daten der Tabelle.
    font - Die Schrift in der gedruckt werden soll.
    color - Die Farbe in der gedruckt werden soll.
    g2d - Das Graphicsobjekt, auf dem gedruckt werden soll.
    pf - Die aktuellen Seiteneinstellungen.
    posy - Y-Position an der gedruckt wird(Zeile).
    orientation - Ausrichtung des zu druckenden Bildes(LEFT, RIGHT, CENTER).
    Returns:
    Die Position der nächsten Zeile auf dem Papier nach dem hinzufügen des Bildes.

  • printTabelle

    protected int printTabelle(Object[][] data,
                               Font font,
                               Color color,
                               Graphics2D g2d,
                               PageFormat pf,
                               int posx,
                               int posy,
                               int orientation)
    Zeichnet an der angegebenen Position eine Tabelle mit den Daten aus dem Array. Dabei wird die Tabelle entsprechend der Parameter formatiert. Der linke Rand, auf den sich die Positionierung bezieht ist dabei der äußerste linke Rand im druckbaren Bereich. Falls die Spaltenkoordinate(posx) kleiner als 0 ist wird sie auf 0 gesetzt. Diese Methode sollte nur aus der Methode initPrintView aufgerufen werden. Fuer den Parameter orientation sind die folgenden Werte zulaessig:
  • LEFT
  • RIGHT
  • CENTER

    Parameters:
    data - Array mit den Daten der Tabelle.
    font - Die Schrift in der gedruckt werden soll.
    color - Die Farbe in der gedruckt werden soll.
    g2d - Das Graphicsobjekt, auf dem gedruckt werden soll.
    pf - Die aktuellen Seiteneinstellungen.
    posx - X-Position an der gedruckt wird(Ab hier beginnt dann die linke Seite. Das ist wichtig für die Ausrichtung.).
    posy - Y-Position an der gedruckt wird(Zeile).
    orientation - Ausrichtung des zu druckenden Bildes(LEFT, RIGHT, CENTER).
    Returns:
    Die Position der nächsten Zeile auf dem Papier nach dem hinzufügen des Bildes.

  • showPageLayoutDialog

    public void showPageLayoutDialog()
    Zeigt für den aktuellen Drucker einen Dialog mit den Eigenschaften der Seite an. Bei beenden des Dialoges mit 'OK' werden die neuen Einstellungen übernommen und die Seite neu gezeichnet.


    showPrinterDialog

    public void showPrinterDialog()
    Zeigt den Dialog zur Auswahl eines neuen Druckers an. Wenn ein neuer Drucker ausgewählt wurde werden die Einstellungen des neuen Druckers übernommen.


    setZoomfaktor

    public void setZoomfaktor(double zoomfaktor)
    Zoomfaktor neu festlegen. Der Zoomfaktor skaliert die Oberfläche neu. Der neue Zoomfaktor muß größer oder gleich 0 sein. Wird eine negative Zahl übergeben geschieht nichts.

    Parameters:
    zoomfaktor - Der Zoomfaktor fuer das PrintObject.

    getZoomfaktor

    public double getZoomfaktor()
    Gibt den aktuell eingestellten Zoomfaktor zurück.

    Returns:
    Der Zoomfaktor fuer das PrintObject.

    getPrinterJob

    public PrinterJob getPrinterJob()
    Gibt das aktuelle PrinterJob-Objekt zurück.

    Returns:
    Das aktuelle PrinterJob-Objekt.

    getPageFormat

    public PageFormat getPageFormat()
    Gibt das PageFormat dieses PrintObject zurück.

    Returns:
    Das PageFormat-Objekt fuer dieses PrintObject.