net.sourceforge.barbecue
Class Barcode

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by net.sourceforge.barbecue.Barcode
All Implemented Interfaces:
ImageObserver, MenuContainer, Printable, Serializable
Direct Known Subclasses:
LinearBarcode

public abstract class Barcode
extends JComponent
implements Printable

Abstract barcode class that provides functionality that is common to all barcodes. Specific barcode implementations must subclass this and provide information specific to the barcode type they are implementing.

Author:
Ian Bourke
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
protected  int barHeight
           
protected  int barWidth
           
protected  String data
           
protected  boolean drawingQuietSection
           
protected  boolean drawingText
           
protected  String label
           
 
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.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
protected Barcode(String data)
           
 
Method Summary
protected  String beautify(String s)
           
protected abstract  Module calculateChecksum()
           
protected  int calculateMinimumBarHeight(int resolution)
           
 void draw(Graphics2D g, int x, int y)
          Renders this Barcode at the specified location in the specified Graphics2D context.
protected abstract  Dimension draw(Output output, int x, int y, int barWidth, int barHeight)
           
protected  int drawModule(Module module, Output output, int x, int y, int barWidth, int barHeight)
           
protected abstract  Module[] encodeData()
           
 Rectangle getBounds()
          From JComponent.
 Rectangle getBounds(Rectangle rv)
          From JComponent.
 String getData()
          Returns the data that the barcode is coding for.
 int getHeight()
          From JComponent.
 String getLabel()
          Returns the text that will be displayed underneath the barcode (if requested).
 Dimension getMaximumSize()
          From JComponent.
 Dimension getMinimumSize()
          From JComponent.
protected abstract  Module getPostAmble()
           
protected abstract  Module getPreAmble()
           
 Dimension getPreferredSize()
          From JComponent.
protected  int getResolution()
           
 Dimension getSize()
          From JComponent.
 int getWidth()
          From JComponent.
 int getX()
          From JComponent.
 int getY()
          From JComponent.
 boolean isDrawingQuietSection()
          Indicates whether the barcode is drawing leading and trailing white space/quiet area.
 boolean isDrawingText()
          Indicates whether the barcode is drawing a text label underneath the barcode or not.
 void output(Output output)
           
protected  void paintComponent(Graphics g)
          From JComponent.
 int print(Graphics g, PageFormat pageFormat, int pageIndex)
           
 void setBarHeight(int barHeight)
          Sets the desired height for the bars in the barcode (in pixels).
 void setBarWidth(int barWidth)
          Sets the desired bar width for the barcode.
 void setDrawingQuietSection(boolean drawingQuietSection)
          Indicates whether the leading and trailing white space should be rendered.
 void setDrawingText(boolean drawingText)
          Indicates whether the barcode data should be shown as a string underneath the barcode or not.
 void setFont(Font font)
          Sets the font to use when drawing the barcode data string underneath the barcode.
 void setLabel(String label)
          Sets the human readable text to be displayed underneath the barcode.
 void setResolution(int resolution)
          Sets the desired output resolution for the barcode.
 String toString()
           
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getNextFocusableComponent, getPopupLocation, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, paramString, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update, updateUI
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, 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, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, 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, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, transferFocus, transferFocusBackward, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

data

protected String data

label

protected String label

drawingText

protected boolean drawingText

drawingQuietSection

protected boolean drawingQuietSection

barWidth

protected int barWidth

barHeight

protected int barHeight
Constructor Detail

Barcode

protected Barcode(String data)
           throws BarcodeException
Throws:
BarcodeException
Method Detail

getData

public String getData()
Returns the data that the barcode is coding for.

Returns:
The barcode raw data

setFont

public void setFont(Font font)
Sets the font to use when drawing the barcode data string underneath the barcode.

Note that changing this setting after a barcode has been drawn will invalidate the component and may force a refresh.

Overrides:
setFont in class JComponent
Parameters:
font - The font to use

setDrawingText

public void setDrawingText(boolean drawingText)
Indicates whether the barcode data should be shown as a string underneath the barcode or not.

Note that changing this setting after a barcode has been drawn will invalidate the component and may force a refresh.

Parameters:
drawingText - True if the text should be shown, false if not

isDrawingText

public boolean isDrawingText()
Indicates whether the barcode is drawing a text label underneath the barcode or not.

Returns:
True if the text is drawn, false otherwise

setDrawingQuietSection

public void setDrawingQuietSection(boolean drawingQuietSection)
Indicates whether the leading and trailing white space should be rendered.

Note that changing this setting after a barcode has been drawn will invalidate the component and may force a refresh.

Parameters:
drawingQuietSection - True if the quiet area/white space should be shown, false if not

isDrawingQuietSection

public boolean isDrawingQuietSection()
Indicates whether the barcode is drawing leading and trailing white space/quiet area.

Returns:
True if the quiet area/white space is drawn, false otherwise

setBarWidth

public void setBarWidth(int barWidth)
Sets the desired bar width for the barcode. This is the width (in pixels) of the thinnest bar in the barcode. Other bars will change their size relative to this.

Note that changing this setting after a barcode has been drawn will invalidate the component and may force a refresh.

Parameters:
barWidth - The desired width of the thinnest bar in pixels

setBarHeight

public void setBarHeight(int barHeight)
Sets the desired height for the bars in the barcode (in pixels). Note that some barcode implementations will not allow the height to go below a minimum size. This is not the height of the component as a whole, as it does not specify the height of any text that may be drawn and does not include borders.

Note that changing this setting after a barcode has been drawn will invalidate the component and may force a refresh.

Parameters:
barHeight - The desired height of the barcode bars in pixels

setResolution

public void setResolution(int resolution)
Sets the desired output resolution for the barcode. This method should be used in cases where the barcode is either being outputted to a device other than the screen, or the barcode is being generated on a headless machine (e.g. a rack mounted server) and the screen resolution cannot be determined. Note that is the barcode is generated in either of these situations and this method has not been called, the resolution is assumed to be 72 dots per inch.

Parameters:
resolution - The desired output resolution (in dots per inch)

getX

public int getX()
From JComponent.

Overrides:
getX in class JComponent
Returns:
The X co-ordinate of the component's origin

getY

public int getY()
From JComponent.

Overrides:
getY in class JComponent
Returns:
The Y co-ordinate of the component's origin

getWidth

public int getWidth()
From JComponent.

Overrides:
getWidth in class JComponent
Returns:
The width of this component

getHeight

public int getHeight()
From JComponent.

Overrides:
getHeight in class JComponent
Returns:
The height of this component

getBounds

public Rectangle getBounds()
From JComponent.

Overrides:
getBounds in class Component
Returns:
The bounds of this component

getBounds

public Rectangle getBounds(Rectangle rv)
From JComponent.

Overrides:
getBounds in class JComponent
Parameters:
rv - The rectangle to set the bounds on
Returns:
The updated rv

getPreferredSize

public Dimension getPreferredSize()
From JComponent.

Overrides:
getPreferredSize in class JComponent
Returns:
The preferred size of this component

getMinimumSize

public Dimension getMinimumSize()
From JComponent.

Overrides:
getMinimumSize in class JComponent
Returns:
The minimum size of this component

getMaximumSize

public Dimension getMaximumSize()
From JComponent.

Overrides:
getMaximumSize in class JComponent
Returns:
The maximum size of this component

getSize

public Dimension getSize()
From JComponent.

Overrides:
getSize in class Component
Returns:
The actual size of this component

draw

public void draw(Graphics2D g,
                 int x,
                 int y)
          throws OutputException
Renders this Barcode at the specified location in the specified Graphics2D context. The origin of the layout is placed at x, y. Rendering may touch any point within getBounds() of this position. This leaves the g2 unchanged.

Parameters:
g - The graphics context
x - The horizontal value of the upper left co-ordinate of the bounding box
y - The vertical value of the upper left co-ordinate of the bounding box
Throws:
OutputException

output

public void output(Output output)
            throws OutputException
Throws:
OutputException

encodeData

protected abstract Module[] encodeData()

calculateChecksum

protected abstract Module calculateChecksum()

getPreAmble

protected abstract Module getPreAmble()

getPostAmble

protected abstract Module getPostAmble()

draw

protected abstract Dimension draw(Output output,
                                  int x,
                                  int y,
                                  int barWidth,
                                  int barHeight)
                           throws OutputException
Throws:
OutputException

getLabel

public String getLabel()
Returns the text that will be displayed underneath the barcode (if requested).

Returns:
The text label for the barcode

setLabel

public void setLabel(String label)
Sets the human readable text to be displayed underneath the barcode. If set to null then the text will automaticaly be generated.

Parameters:
label - the human readable barcode text
See Also:
getLabel()

calculateMinimumBarHeight

protected int calculateMinimumBarHeight(int resolution)

paintComponent

protected void paintComponent(Graphics g)
From JComponent.

Overrides:
paintComponent in class JComponent
Parameters:
g - The graphics to paint the component onto

getResolution

protected int getResolution()

drawModule

protected int drawModule(Module module,
                         Output output,
                         int x,
                         int y,
                         int barWidth,
                         int barHeight)
                  throws OutputException
Throws:
OutputException

beautify

protected String beautify(String s)

print

public int print(Graphics g,
                 PageFormat pageFormat,
                 int pageIndex)
          throws PrinterException
Specified by:
print in interface Printable
Throws:
PrinterException

toString

public String toString()
Overrides:
toString in class Component


Copyright © 2003-2011 barbecue.sourceforge.net. All Rights Reserved.