hades.gui
Class MultiLineLabel

java.lang.Object
  extended byjava.awt.Component
      extended byhades.gui.MultiLineLabel
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable

public class MultiLineLabel
extends java.awt.Component

A custom component that displays multiple lines of text with specified margins and alignment. In Java 1.1, we could extend Component instead of Canvas, making this a more efficient "Lightweight component"

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
protected  int alignment
           
static int CENTER
           
protected  java.lang.String label
           
static int LEFT
           
protected  int line_ascent
           
protected  int line_height
           
protected  int[] line_widths
           
protected  java.lang.String[] lines
           
protected  int margin_height
           
protected  int margin_width
           
protected  int max_width
           
protected  boolean measured
           
protected  int num_lines
           
static int RIGHT
           
 
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
MultiLineLabel()
           
MultiLineLabel(java.lang.String label)
           
MultiLineLabel(java.lang.String label, int alignment)
           
MultiLineLabel(java.lang.String label, int margin_width, int margin_height)
           
MultiLineLabel(java.lang.String label, int margin_width, int margin_height, int alignment)
           
 
Method Summary
 int getAlignment()
           
 java.lang.String getLabel()
           
 int getMarginHeight()
           
 int getMarginWidth()
           
 java.awt.Dimension getMinimumSize()
          This method is called when the layout manager wants to know the bare minimum amount of space we need to get by.
 java.awt.Dimension getPreferredSize()
          This method is called by a layout manager when it wants to know how big we'd like to be.
 void measure()
          This internal method figures out how the font is, and how wide each line of the label is, and how wide the widest line is.
protected  void newLabel()
          This internal method breaks a specified label up into an array of lines.
 void paint(java.awt.Graphics g)
          This method draws the label (same method that applets use).
 void setAlignment(int a)
           
 void setFont(java.awt.Font f)
           
 void setForeground(java.awt.Color c)
           
 void setLabel(java.lang.String label)
           
 void setMarginHeight(int mh)
           
 void setMarginWidth(int mw)
           
 void setText(java.lang.String label)
          method added for consistency with java.awt.Label - FNH, 21.07.98
 
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, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, 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, minimumSize, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, paramString, postEvent, preferredSize, 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, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeys, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, setVisible, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle, update, validate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

label

protected java.lang.String label

margin_width

protected int margin_width

margin_height

protected int margin_height

alignment

protected int alignment

LEFT

public static final int LEFT
See Also:
Constant Field Values

CENTER

public static final int CENTER
See Also:
Constant Field Values

RIGHT

public static final int RIGHT
See Also:
Constant Field Values

num_lines

protected int num_lines

lines

protected java.lang.String[] lines

line_widths

protected int[] line_widths

max_width

protected int max_width

line_height

protected int line_height

line_ascent

protected int line_ascent

measured

protected boolean measured
Constructor Detail

MultiLineLabel

public MultiLineLabel(java.lang.String label,
                      int margin_width,
                      int margin_height,
                      int alignment)

MultiLineLabel

public MultiLineLabel(java.lang.String label,
                      int margin_width,
                      int margin_height)

MultiLineLabel

public MultiLineLabel(java.lang.String label,
                      int alignment)

MultiLineLabel

public MultiLineLabel(java.lang.String label)

MultiLineLabel

public MultiLineLabel()
Method Detail

setLabel

public void setLabel(java.lang.String label)

setText

public void setText(java.lang.String label)
method added for consistency with java.awt.Label - FNH, 21.07.98


setFont

public void setFont(java.awt.Font f)

setForeground

public void setForeground(java.awt.Color c)

setAlignment

public void setAlignment(int a)

setMarginWidth

public void setMarginWidth(int mw)

setMarginHeight

public void setMarginHeight(int mh)

getLabel

public java.lang.String getLabel()

getAlignment

public int getAlignment()

getMarginWidth

public int getMarginWidth()

getMarginHeight

public int getMarginHeight()

getPreferredSize

public java.awt.Dimension getPreferredSize()
This method is called by a layout manager when it wants to know how big we'd like to be. In Java 1.1, getPreferredSize() is the preferred version of this method. We use this deprecated version so that this component can interoperate with 1.0 components.


getMinimumSize

public java.awt.Dimension getMinimumSize()
This method is called when the layout manager wants to know the bare minimum amount of space we need to get by. For Java 1.1, we'd use getMinimumSize().


paint

public void paint(java.awt.Graphics g)
This method draws the label (same method that applets use). Note that it handles the margins and the alignment, but that it doesn't have to worry about the color or font--the superclass takes care of setting those in the Graphics object we're passed.


newLabel

protected void newLabel()
This internal method breaks a specified label up into an array of lines. It uses the StringTokenizer utility class.


measure

public void measure()
This internal method figures out how the font is, and how wide each line of the label is, and how wide the widest line is.