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.AccessibleJPanelNested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponentNested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainerNested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected intstatic final intIndicator for centering each line.static final intIndicator for left alignment.protected intprotected intprotected int[]protected String[]protected intprotected intprotected intprotected intstatic final intIndicator 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_WINDOWFields inherited from class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTFields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH -
Constructor Summary
ConstructorsConstructorDescriptionDefault 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 TypeMethodDescriptionvoidThis method is invoked after Canvas is first created but before it can be actually displayed.final intGet alignment for text, LEFT, CENTER, RIGHT.getLabel()Get the label text.final intGet margin height.final intGet 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 voidSimple test for the MultiLineLabel class.protected voidmeasure()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 voidbreaks specified label into array of lines.voidThis method draws label (applets use same method).voidsetAlignment(int a) Set alignment for text, LEFT, RIGHT, CENTER.voidSets a new font for labelvoidSets a new color for CanvasvoidSet a new label for JPanelvoidSet the label text.voidsetMarginHeight(int mh) Sets the margin heightvoidsetMarginWidth(int mw) Set margin width.Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUIMethods 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, updateMethods 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, validateTreeMethods 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:
setFontin classJComponent- Parameters:
f- Font to set label
-
setForeground
Sets a new color for Canvas- Overrides:
setForegroundin 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:
addNotifyin classJComponent
-
getPreferredSize
This method is called by a layout manager when it wants to know how big we'd like to be- Overrides:
getPreferredSizein classJComponent
-
getMinimumSize
This method is called when layout manager wants to know the bare minimum amount of space we need to get by.- Overrides:
getMinimumSizein 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:
paintin classJComponent- Parameters:
g- the graphics context to paint with.
-
main
Simple test for the MultiLineLabel class.- Parameters:
args- not used
-