Package docking.widgets

# Class MultiLineLabel

java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JPanel
docking.widgets.MultiLineLabel

All Implemented Interfaces:
  `ImageObserver`, `MenuContainer`, `Serializable`, `Accessible`

public class MultiLineLabel extends JPanel
Class to render a String that has new line characters as a multiline label. Calculates the resizing and centering characteristics.

Not affected by HTML formatting.

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.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected int`
  `alignment`
  `static final int`
  `CENTER`
  Indicator for centering each line.
  `static final int`
  `LEFT`
  Indicator for left alignment.
  `protected int`
  `line_ascent`
  `protected int`
  `line_height`
  `protected int[]`
  `line_widths`
  `protected String[]`
  `lines`
  `protected int`
  `margin_height`
  `protected int`
  `margin_width`
  `protected int`
  `max_width`
  `protected int`
  `num_lines`
  `static final int`
  `RIGHT`
  Indicator for right alignment.

  ### Fields inherited from class javax.swing.JComponent

  `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

  `accessibleContext, 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

  Constructors
  Constructor
  Description
  `MultiLineLabel()`
  Default constructor.
  `MultiLineLabel(String label)`
  Construct a new MultiLineLabel that is left aligned with the default width and height margins.
  `MultiLineLabel(String label, int margin_width, int margin_height, int alignment)`
  Construct a new MultiLineLabel.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addNotify()`
  This method is invoked after Canvas is first created but before it can be actually displayed.
  `final int`
  `getAlignment()`
  Get alignment for text, LEFT, CENTER, RIGHT.
  `String`
  `getLabel()`
  Get the label text.
  `final int`
  `getMarginHeight()`
  Get margin height.
  `final int`
  `getMarginWidth()`
  Get margin width.
  `Dimension`
  `getMinimumSize()`
  This method is called when layout manager wants to know the bare minimum amount of space we need to get by.
  `Dimension`
  `getPreferredSize()`
  This method is called by a layout manager when it wants to know how big we'd like to be
  `static void`
  `main(String[] args)`
  Simple test for the MultiLineLabel class.
  `protected void`
  `measure()`
  This method figures out how large the font is, and how wide each line of the label is, and how wide the widest line is.
  `protected void`
  `newLabel(String label)`
  breaks specified label into array of lines.
  `void`
  `paint(Graphics g)`
  This method draws label (applets use same method).
  `void`
  `setAlignment(int a)`
  Set alignment for text, LEFT, RIGHT, CENTER.
  `void`
  `setFont(Font f)`
  Sets a new font for label
  `void`
  `setForeground(Color c)`
  Sets a new color for Canvas
  `void`
  `setLabel(String label)`
  Set a new label for JPanel
  `void`
  `setLabel(String[] text)`
  Set the label text.
  `void`
  `setMarginHeight(int mh)`
  Sets the margin height
  `void`
  `setMarginWidth(int mw)`
  Set margin width.

  ### Methods inherited from class javax.swing.JPanel

  `getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI`

  ### Methods inherited from class javax.swing.JComponent

  `addAncestorListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getNextFocusableComponent, getPopupLocation, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, 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, 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, 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, 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, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, 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, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Field Details

  - ### LEFT

    public static final int LEFT
    Indicator for left alignment.
    See Also:
      - Constant Field Values

  - ### CENTER

    public static final int CENTER
    Indicator for centering each line.
    See Also:
      - Constant Field Values

  - ### RIGHT

    public static final int RIGHT
    Indicator for right alignment.
    See Also:
      - Constant Field Values

  - ### lines

    protected String[] lines

  - ### num_lines

    protected int num_lines

  - ### margin_width

    protected int margin_width

  - ### margin_height

    protected int margin_height

  - ### line_height

    protected int line_height

  - ### line_ascent

    protected int line_ascent

  - ### line_widths

    protected int[] line_widths

  - ### max_width

    protected int max_width

  - ### alignment

    protected int alignment

- ## Constructor Details

  - ### MultiLineLabel

    public MultiLineLabel()
    Default constructor.

  - ### MultiLineLabel

    public MultiLineLabel(String label, int margin_width, int margin_height, int alignment)
    Construct a new MultiLineLabel.
    Parameters:
      `label` - String to split up if it contains new line characters
      `margin_width` - width of label
      `margin_height` - height of label
      `alignment` - alignment of label, LEFT, CENTER, or RIGHT

  - ### MultiLineLabel

    public MultiLineLabel(String label)
    Construct a new MultiLineLabel that is left aligned with the default width and height margins.
    Parameters:
      `label` - String to split up if it contains new line characters

- ## Method Details

  - ### newLabel

    protected void newLabel(String label)
    breaks specified label into array of lines.
    Parameters:
      `label` - String to display in canvas.

  - ### measure

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

  - ### setLabel

    public void setLabel(String label)
    Set a new label for JPanel
    Parameters:
      `label` - String to display in canvas

  - ### setLabel

    public void setLabel(String[] text)
    Set the label text.
    Parameters:
      `text` - array of strings to display.

  - ### getLabel

    public String getLabel()
    Get the label text.

  - ### setFont

    public void setFont(Font f)
    Sets a new font for label
    Overrides:
      `setFont` in class `JComponent`
    Parameters:
      `f` - Font to set label

  - ### setForeground

    public void setForeground(Color c)
    Sets a new color for Canvas
    Overrides:
      `setForeground` in class `JComponent`
    Parameters:
      `c` - Color to display in canvas

  - ### setAlignment

    public void setAlignment(int a)
    Set alignment for text, LEFT, RIGHT, CENTER.
    Parameters:
      `a` - the new alignment.

  - ### setMarginWidth

    public void setMarginWidth(int mw)
    Set margin width.
    Parameters:
      `mw` - the new margin width.

  - ### setMarginHeight

    public void setMarginHeight(int mh)
    Sets the margin height
    Parameters:
      `mh` - the new margin height.

  - ### getAlignment

    public final int getAlignment()
    Get alignment for text, LEFT, CENTER, RIGHT.

  - ### getMarginWidth

    public final int getMarginWidth()
    Get margin width.

  - ### getMarginHeight

    public final int getMarginHeight()
    Get margin height.

  - ### addNotify

    public void addNotify()
    This method is invoked after Canvas is first created but before it can be actually displayed. After we have invoked our superclass's addNotify() method, we have font metrics and can successfully call measure() to figure out how big the label is.
    Overrides:
      `addNotify` in class `JComponent`

  - ### getPreferredSize

    public Dimension getPreferredSize()
    This method is called by a layout manager when it wants to know how big we'd like to be
    Overrides:
      `getPreferredSize` in class `JComponent`

  - ### getMinimumSize

    public Dimension getMinimumSize()
    This method is called when layout manager wants to know the bare minimum amount of space we need to get by.
    Overrides:
      `getMinimumSize` in class `JComponent`

  - ### paint

    public void paint(Graphics g)
    This method draws label (applets use same method). Note that it handles the margins and the alignment, but that is does not have to worry about the color or font -- the superclass takes care of setting those in the Graphics object we've passed.
    Overrides:
      `paint` in class `JComponent`
    Parameters:
      `g` - the graphics context to paint with.

  - ### main

    public static void main(String[] args)
    Simple test for the MultiLineLabel class.
    Parameters:
      `args` - not used