net.lucidviews.util.gui.swing
Class JLettersPanel

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by net.lucidviews.util.gui.swing.JLettersPanel
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, Accessible

public class JLettersPanel
extends JPanel

A panel that displays a row of letters.

Since:
1.0
Version:
$Revision: 1.3 $
Author:
Stephen Battey
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JPanel
JPanel.AccessibleJPanel
 
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.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
protected  Border _defaultBorder
          The border, if no other is specified, to use around each text component that displays a letter.
protected  JLabel[] _letters
          Text components, one for each letter.
 
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.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
JLettersPanel()
          Default constructor.
JLettersPanel(boolean isDoubleBuffered)
          Default constructor.
 
Method Summary
protected  JLabel getLetter(int index)
          Returns the label showing the letter at the given index.
 void setAlignment(int align)
          Sets the alignment for the row of letters within the whole panel.
 void setLayout(LayoutManager layoutManager)
           
 void setLetter(char letter, int index)
          Change the letter shown at a given position.
 void setLetter(char letter, int index, Font font, Color colour)
          Change the letter shown at a given position.
 void setLetterBorder(Border border)
          Set the border used around each letter.
 void setLetters(char letter, int count)
          Set the letters to be displayed.
 void setLetters(String letters)
          Set the letters to be displayed.
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, 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, setFont, setForeground, setInheritsPopupMenu, 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, 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, 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, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, 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, getSize, 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, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

_defaultBorder

protected Border _defaultBorder
The border, if no other is specified, to use around each text component that displays a letter.


_letters

protected JLabel[] _letters
Text components, one for each letter.

Constructor Detail

JLettersPanel

public JLettersPanel()
Default constructor.


JLettersPanel

public JLettersPanel(boolean isDoubleBuffered)
Default constructor.

Parameters:
isDoubleBuffered - a boolean, true for double-buffering, which uses additional memory space to achieve fast, flicker-free updates
Method Detail

setLayout

public void setLayout(LayoutManager layoutManager)
Overrides:
setLayout in class Container

setAlignment

public void setAlignment(int align)
Sets the alignment for the row of letters within the whole panel. Possible values are

Parameters:
align - one of the alignment values shown above

setLetterBorder

public void setLetterBorder(Border border)
Set the border used around each letter.
The border of all current letters will be updated.

Parameters:
border - the border around each letter

setLetters

public void setLetters(String letters)
Set the letters to be displayed.
The current set of letters will be removed and replaced with those in the String.

Parameters:
letters - a string of letters

setLetters

public void setLetters(char letter,
                       int count)
Set the letters to be displayed.
The current set of letters will be removed and replaced with a sequence of a single letter.

Parameters:
letter - the letter to be used
count - the number of letters to be added to the panel

setLetter

public void setLetter(char letter,
                      int index)
               throws IndexOutOfBoundsException
Change the letter shown at a given position.
If the index goes beyond the list of letters currently displayed on this panel then an exception will be thrown.

Parameters:
letter - the letter to be displayed
index - the index within the panel where the letter is to appear
Throws:
IndexOutOfBoundsException - there is no letter at the specified index

setLetter

public void setLetter(char letter,
                      int index,
                      Font font,
                      Color colour)
               throws IndexOutOfBoundsException
Change the letter shown at a given position.
If the index goes beyond the list of letters currently displayed on this panel then an exception will be thrown.

Parameters:
letter - the letter to be displayed
index - the index within the panel where the letter is to appear
font - the font to be used to render the letter
colour - the colour of the letter when it is rendered
Throws:
IndexOutOfBoundsException - there is no letter at the specified index

getLetter

protected JLabel getLetter(int index)
                    throws IndexOutOfBoundsException
Returns the label showing the letter at the given index.
If the letter does not exist an IndexOutOfBoundsException is thrown.

Parameters:
index - the index of the letter
Returns:
the JLabel that renders the letter
Throws:
IndexOutOfBoundsException - there is no letter at the specified index