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
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:
-
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
Modifier and TypeFieldDescriptionprotected int
static final int
Indicator for centering each line.static final int
Indicator for left alignment.protected int
protected int
protected int[]
protected String[]
protected int
protected int
protected int
protected int
static final int
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
ConstructorDescriptionDefault 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 TypeMethodDescriptionvoid
This method is invoked after Canvas is first created but before it can be actually displayed.final int
Get alignment for text, LEFT, CENTER, RIGHT.getLabel()
Get the label text.final int
Get margin height.final int
Get margin width.This method is called when layout manager wants to know the bare minimum amount of space we need to get by.This method is called by a layout manager when it wants to know how big we'd like to bestatic void
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
breaks specified label into array of lines.void
This method draws label (applets use same method).void
setAlignment
(int a) Set alignment for text, LEFT, RIGHT, CENTER.void
Sets a new font for labelvoid
Sets a new color for Canvasvoid
Set a new label for JPanelvoid
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 Details
-
LEFT
public static final int LEFTIndicator for left alignment.- See Also:
-
CENTER
public static final int CENTERIndicator for centering each line.- See Also:
-
RIGHT
public static final int RIGHTIndicator for right alignment.- See Also:
-
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
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
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
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
Set a new label for JPanel- Parameters:
label
- String to display in canvas
-
setLabel
Set the label text.- Parameters:
text
- array of strings to display.
-
getLabel
Get the label text. -
setFont
Sets a new font for label- Overrides:
setFont
in classJComponent
- Parameters:
f
- Font to set label
-
setForeground
Sets a new color for Canvas- Overrides:
setForeground
in classJComponent
- 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 classJComponent
-
getPreferredSize
This method is called by a layout manager when it wants to know how big we'd like to be- Overrides:
getPreferredSize
in classJComponent
-
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 classJComponent
-
paint
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 classJComponent
- Parameters:
g
- the graphics context to paint with.
-
main
Simple test for the MultiLineLabel class.- Parameters:
args
- not used
-