ach
Class ImgComponent

java.lang.Object
  extended byjava.awt.Component
      extended byach.ImgComponent
All Implemented Interfaces:
java.awt.event.ActionListener, java.util.EventListener, java.awt.image.ImageObserver, ImgComponentIntf, java.awt.MenuContainer, java.io.Serializable

public class ImgComponent
extends java.awt.Component
implements ImgComponentIntf, java.awt.event.ActionListener

ImgComponent.java
Copyright (c) 1999 Helge Hackbarth, All Rights Reserved.
Extends Component with comfortable image display functions and automatic drawing of background patterns. The functionality is similar to class ImgCanvas but this class can be used as lightweight component e.g. in a JInternalFrame. If used embedded in standard AWT components you may recognize some flickering, so ImgCanvas is recommended.

THE AUTHOR MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. THE AUTHOR SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
 boolean clearBackground
          Flag if background is simply cleared or drawn with a black-and-white pattern
 boolean clearBeforePaint
          Flag if component needs to be cleared before paint.
 boolean needsFocus
          Flag if component needs to request focus after update automatcally set to true if run with Java 1.0x
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
ImgComponent(java.awt.Container parent)
          constructor for ImgComponent
ImgComponent(java.awt.Container parent, java.awt.image.ImageObserver observer)
          constructor for ImgComponent chaining to additional image observer
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent ae)
           
 void checkFocus()
          request focus if boolean var needsFocus is set true
 void drawError(java.lang.String errorMsg)
          schedule a repaint that will draw an error message (may contain \r\n)
 void drawImage(java.awt.Image img, int x, int y)
          schedule a repaint with drawing the given image (not scaled)
 void drawImage(java.awt.Image img, int x, int y, int width, int height, int hints)
          schedule a repaint with drawing the given image (scaled)
 void drawShapes(ShapeList sl)
          draw vector graphics objects
 void fitInImage(java.awt.Image img, java.awt.Dimension imgDim, int hints)
          schedule a repaint with an image proportionally scaled to fit in component
 boolean getDoubleBuffering()
          Retrieve current setting of double buffering mode
 java.awt.Dimension getMinimumSize()
           
 java.awt.Image getOffscreen()
          Get offscreen image
 java.awt.Dimension getPreferredSize()
           
 java.awt.Dimension getSize()
           
 boolean imageUpdate(java.awt.Image img, int flags, int x, int y, int w, int h)
          Image component is a modified ImageObserver to retry after ABORT and to be able to chain in another ImageObserver
 java.awt.Dimension minimumSize()
           
 void paint(java.awt.Graphics g)
          the paint method of the image component
 java.awt.Dimension preferredSize()
           
 void requestFocus()
           
 void resize(java.awt.Dimension d)
           
 void resize(int width, int height)
           
 void setBackgroundExclusion(int x, int y, int width, int height)
          Specify the area that has to be excluded from drawing the background
 void setDoubleBuffering(boolean dblBufMode)
          Enable or disable double buffering when component is painted
 void setSize(java.awt.Dimension d)
           
 void setSize(int width, int height)
           
 java.awt.Dimension size()
           
 void update(java.awt.Graphics g)
          the update method of the image component (calling paint()); drawing of the background is controlled by clearBeforePaint-flag
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, deliverEvent, disable, disableEvents, dispatchEvent, doLayout, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, getAccessibleContext, getAlignmentX, getAlignmentY, getBackground, getBounds, getBounds, getColorModel, getComponentAt, getComponentAt, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeys, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getListeners, getLocale, getLocation, getLocation, getLocationOnScreen, getMaximumSize, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, inside, invalidate, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusCycleRoot, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isOpaque, isShowing, isValid, isVisible, keyDown, keyUp, layout, list, list, list, list, list, locate, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, paramString, postEvent, prepareImage, prepareImage, print, printAll, processComponentEvent, processEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeys, setFocusTraversalKeysEnabled, setFont, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setVisible, show, show, toString, transferFocus, transferFocusBackward, transferFocusUpCycle, validate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface ach.ImgComponentIntf
setBackground
 

Field Detail

needsFocus

public boolean needsFocus
Flag if component needs to request focus after update automatcally set to true if run with Java 1.0x


clearBeforePaint

public boolean clearBeforePaint
Flag if component needs to be cleared before paint. This class automatically draws a background pattern around the image, so usually clearing the background before painting is not necessary


clearBackground

public boolean clearBackground
Flag if background is simply cleared or drawn with a black-and-white pattern

Constructor Detail

ImgComponent

public ImgComponent(java.awt.Container parent)
constructor for ImgComponent

Parameters:
parent - is the container where this component is to be embedded

ImgComponent

public ImgComponent(java.awt.Container parent,
                    java.awt.image.ImageObserver observer)
constructor for ImgComponent chaining to additional image observer

Parameters:
parent - is the container where this component is to be embedded
observer - additional image observer to be chained in at drawImage
Method Detail

setDoubleBuffering

public void setDoubleBuffering(boolean dblBufMode)
Enable or disable double buffering when component is painted

Specified by:
setDoubleBuffering in interface ImgComponentIntf
Parameters:
dblBufMode - true to enable double buffering, false otherwise

getDoubleBuffering

public boolean getDoubleBuffering()
Retrieve current setting of double buffering mode

Specified by:
getDoubleBuffering in interface ImgComponentIntf
Returns:
true if double buffering is enabled, false otherwise

getOffscreen

public java.awt.Image getOffscreen()
Get offscreen image

Specified by:
getOffscreen in interface ImgComponentIntf
Returns:
image representing the current double buffer screen or null

size

public java.awt.Dimension size()

getSize

public java.awt.Dimension getSize()

resize

public void resize(java.awt.Dimension d)
Specified by:
resize in interface ImgComponentIntf

resize

public void resize(int width,
                   int height)
Specified by:
resize in interface ImgComponentIntf

setSize

public void setSize(java.awt.Dimension d)
Specified by:
setSize in interface ImgComponentIntf

setSize

public void setSize(int width,
                    int height)
Specified by:
setSize in interface ImgComponentIntf

minimumSize

public java.awt.Dimension minimumSize()

getMinimumSize

public java.awt.Dimension getMinimumSize()

preferredSize

public java.awt.Dimension preferredSize()

getPreferredSize

public java.awt.Dimension getPreferredSize()

setBackgroundExclusion

public void setBackgroundExclusion(int x,
                                   int y,
                                   int width,
                                   int height)
Specify the area that has to be excluded from drawing the background

Specified by:
setBackgroundExclusion in interface ImgComponentIntf
Parameters:
x - the X-coordinate of the excluded area
y - the Y-coordinate of the excluded area
width - the width of the excluded area
height - the height of the excluded area

checkFocus

public void checkFocus()
Description copied from interface: ImgComponentIntf
request focus if boolean var needsFocus is set true

Specified by:
checkFocus in interface ImgComponentIntf

drawImage

public void drawImage(java.awt.Image img,
                      int x,
                      int y,
                      int width,
                      int height,
                      int hints)
schedule a repaint with drawing the given image (scaled)

Specified by:
drawImage in interface ImgComponentIntf
Parameters:
img - the image to be drawn
x - the X-coordinate of the image relative to component
y - the Y-coordinate of the image relative to component
width - the scaled width of the image
height - the scaled height of the image
hints - options for scaling method, see getScaledInstance (e.g. SCALE_SMOOTH)
See Also:
Image.getScaledInstance(int width, int height, int hints)

drawImage

public void drawImage(java.awt.Image img,
                      int x,
                      int y)
schedule a repaint with drawing the given image (not scaled)

Specified by:
drawImage in interface ImgComponentIntf
Parameters:
img - the image to be drawn
x - the X-coordinate of the image relative to component
y - the Y-coordinate of the image relative to component

fitInImage

public void fitInImage(java.awt.Image img,
                       java.awt.Dimension imgDim,
                       int hints)
schedule a repaint with an image proportionally scaled to fit in component

Specified by:
fitInImage in interface ImgComponentIntf
Parameters:
img - the image to be drawn
imgDim - the size of the image
hints - options for scaling method, see getScaledInstance (e.g. SCALE_SMOOTH)
See Also:
Image.getScaledInstance(int width, int height, int hints)

drawError

public void drawError(java.lang.String errorMsg)
schedule a repaint that will draw an error message (may contain \r\n)

Specified by:
drawError in interface ImgComponentIntf
Parameters:
errorMsg - the error message

drawShapes

public void drawShapes(ShapeList sl)
draw vector graphics objects

Specified by:
drawShapes in interface ImgComponentIntf

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent ae)
Specified by:
actionPerformed in interface java.awt.event.ActionListener

requestFocus

public void requestFocus()

paint

public void paint(java.awt.Graphics g)
the paint method of the image component

Specified by:
paint in interface ImgComponentIntf

imageUpdate

public boolean imageUpdate(java.awt.Image img,
                           int flags,
                           int x,
                           int y,
                           int w,
                           int h)
Image component is a modified ImageObserver to retry after ABORT and to be able to chain in another ImageObserver

Specified by:
imageUpdate in interface ImgComponentIntf

update

public void update(java.awt.Graphics g)
the update method of the image component (calling paint()); drawing of the background is controlled by clearBeforePaint-flag

Specified by:
update in interface ImgComponentIntf