com.pearsoneduc.ip.gui
Class ImageSelector

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--java.awt.Window
                    |
                    +--java.awt.Frame
                          |
                          +--javax.swing.JFrame
                                |
                                +--com.pearsoneduc.ip.gui.ImageSelector

public abstract class ImageSelector
extends javax.swing.JFrame
implements java.awt.event.ActionListener

Provides a GUI framework for visualising a set of images derived from a single source image.

The input image is read from a file, checked and then processed to generate a set of output images, which are stored in a hashtable. A frame is then created containing a view of the first image that was generated, together with a combobox that can be used to switch the view to other images.

This is an abstract class, and must be extended to be used. Derived classes should supply definitions for the methods imageOK, which checks whether the input image is suitable for processing, and generateImages, which produces the images that are to be visualised. The latter must add each image to the hashtable as an ImageIcon, using the method addImage. It must also return a Vector containing all the keys that are required to access images in the hashtable.

Version:
1.1 [1999/06/29]
Author:
Nick Efford
See Also:
Serialized Form

Inner classes inherited from class javax.swing.JFrame
javax.swing.JFrame.AccessibleJFrame
 
Fields inherited from class javax.swing.JFrame
accessibleContext, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Frame
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Constructor Summary
ImageSelector(java.lang.String imageFile)
          Constructs an ImageSelector using an image from a file.
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent event)
          Selects an image to display.
 void addImage(java.lang.String key, javax.swing.ImageIcon image)
          Adds an image (represented as an ImageIcon) to the hashtable.
abstract  java.util.Vector generateImages()
          Generates processed versions of the source image and stores them in a hashtable.
 java.awt.image.BufferedImage getSourceImage()
           
abstract  boolean imageOK()
          Checks that the source image is suitable for processing.
 void readImage(java.lang.String filename)
          Reads the source image from a file.
 
Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getJMenuBar, getLayeredPane, getRootPane, isRootPaneCheckingEnabled, paramString, processKeyEvent, processWindowEvent, setContentPane, setDefaultCloseOperation, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, update
 
Methods inherited from class java.awt.Frame
addNotify, finalize, getCursorType, getFrames, getIconImage, getMenuBar, getState, getTitle, isResizable, remove, removeNotify, setCursor, setIconImage, setMenuBar, setResizable, setState, setTitle
 
Methods inherited from class java.awt.Window
addWindowListener, applyResourceBundle, applyResourceBundle, dispose, getFocusOwner, getInputContext, getLocale, getOwnedWindows, getOwner, getToolkit, getWarningString, isShowing, pack, postEvent, processEvent, removeWindowListener, show, toBack, toFront
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getInsets, getLayout, getMaximumSize, getMinimumSize, getPreferredSize, insets, invalidate, isAncestorOf, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, remove, removeAll, removeContainerListener, setFont, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addPropertyChangeListener, addPropertyChangeListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, getBackground, getBounds, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont, getFontMetrics, getForeground, getGraphics, getHeight, getInputMethodRequests, getLocation, getLocation, getLocationOnScreen, getName, getParent, getPeer, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isDisplayable, isDoubleBuffered, isEnabled, isFocusTraversable, isLightweight, isOpaque, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processInputMethodEvent, processMouseEvent, processMouseMotionEvent, removeComponentListener, removeFocusListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setForeground, setLocale, setLocation, setLocation, setName, setSize, setSize, setVisible, show, size, toString, transferFocus
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ImageSelector

public ImageSelector(java.lang.String imageFile)
              throws java.io.IOException,
                     ImageDecoderException,
                     OperationException
Constructs an ImageSelector using an image from a file.
Parameters:
imageFile - name of the file containing the image
Throws:
java.io.IOException - if the file cannot be accessed or there is some other problem with reading from it.
ImageDecoderException - if there is a problem with the format of the data in the file.
OperationException - if the image is otherwise unsuitable for processing.
Method Detail

readImage

public void readImage(java.lang.String filename)
               throws java.io.IOException,
                      ImageDecoderException
Reads the source image from a file.
Parameters:
filename - name of image file
Throws:
java.io.IOException - if the file cannot be accessed or there is some other problem with reading from it.
ImageDecoderException - if there is a problem with the format of the data in the file.

imageOK

public abstract boolean imageOK()
Checks that the source image is suitable for processing.
Returns:
true if the image is suitable, false otherwise.

generateImages

public abstract java.util.Vector generateImages()
Generates processed versions of the source image and stores them in a hashtable.
Returns:
a Vector containing strings that can be used as keys to access the images.

getSourceImage

public java.awt.image.BufferedImage getSourceImage()
Returns:
a handle for the source image.

addImage

public void addImage(java.lang.String key,
                     javax.swing.ImageIcon image)
Adds an image (represented as an ImageIcon) to the hashtable.
Parameters:
key - String used as a key to retrieve the image from the hashtable
image - the ImageIcon to be added to the hashtable

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent event)
Selects an image to display.
Specified by:
actionPerformed in interface java.awt.event.ActionListener
Parameters:
event - ActionEvent generated by choosing an item from the combobox