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:
java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.io.Serializable
,javax.accessibility.Accessible
public class MultiLineLabel extends javax.swing.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
javax.swing.JPanel.AccessibleJPanel
-
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
-
-
Field Summary
Fields Modifier and Type Field Description protected int
alignment
static int
CENTER
Indicator for centering each line.static int
LEFT
Indicator for left alignment.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 int
num_lines
static 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
-
-
Constructor Summary
Constructors Constructor Description MultiLineLabel()
Default constructor.MultiLineLabel(java.lang.String label)
Construct a new MultiLineLabel that is left aligned with the default width and height margins.MultiLineLabel(java.lang.String label, int margin_width, int margin_height, int alignment)
Construct a new MultiLineLabel.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addNotify()
This method is invoked after Canvas is first created but before it can be actually displayed.int
getAlignment()
Get alignment for text, LEFT, CENTER, RIGHT.java.lang.String
getLabel()
Get the label text.int
getMarginHeight()
Get margin height.int
getMarginWidth()
Get margin width.java.awt.Dimension
getMinimumSize()
This method is called when 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 bestatic void
main(java.lang.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(java.lang.String label)
breaks specified label into array of lines.void
paint(java.awt.Graphics g)
This method draws label (applets use same method).void
setAlignment(int a)
Set alignment for text, LEFT, RIGHT, CENTER.void
setFont(java.awt.Font f)
Sets a new font for labelvoid
setForeground(java.awt.Color c)
Sets a new color for Canvasvoid
setLabel(java.lang.String label)
Set a new label for JPanelvoid
setLabel(java.lang.String[] text)
Set the label text.void
setMarginHeight(int mh)
Sets the margin heightvoid
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
-
-
-
-
Field Detail
-
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 java.lang.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 Detail
-
MultiLineLabel
public MultiLineLabel()
Default constructor.
-
MultiLineLabel
public MultiLineLabel(java.lang.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 charactersmargin_width
- width of labelmargin_height
- height of labelalignment
- alignment of label, LEFT, CENTER, or RIGHT
-
MultiLineLabel
public MultiLineLabel(java.lang.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 Detail
-
newLabel
protected void newLabel(java.lang.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(java.lang.String label)
Set a new label for JPanel- Parameters:
label
- String to display in canvas
-
setLabel
public void setLabel(java.lang.String[] text)
Set the label text.- Parameters:
text
- array of strings to display.
-
getLabel
public java.lang.String getLabel()
Get the label text.
-
setFont
public void setFont(java.awt.Font f)
Sets a new font for label- Overrides:
setFont
in classjavax.swing.JComponent
- Parameters:
f
- Font to set label
-
setForeground
public void setForeground(java.awt.Color c)
Sets a new color for Canvas- Overrides:
setForeground
in classjavax.swing.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 classjavax.swing.JComponent
-
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- Overrides:
getPreferredSize
in classjavax.swing.JComponent
-
getMinimumSize
public java.awt.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 classjavax.swing.JComponent
-
paint
public void paint(java.awt.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 classjavax.swing.JComponent
- Parameters:
g
- the graphics context to paint with.
-
main
public static void main(java.lang.String[] args)
Simple test for the MultiLineLabel class.- Parameters:
args
- not used
-
-