Class 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
      • Nested classes/interfaces inherited from class java.awt.Container

        java.awt.Container.AccessibleAWTContainer
      • Nested classes/interfaces inherited from class java.awt.Component

        java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
    • 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
      • 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​(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 be
      static 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 label
      void setForeground​(java.awt.Color c)
      Sets a new color for Canvas
      void setLabel​(java.lang.String label)
      Set a new label for JPanel
      void setLabel​(java.lang.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 Detail

      • CENTER

        public static final int CENTER
        Indicator for centering each line.
        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 characters
        margin_width - width of label
        margin_height - height of label
        alignment - 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 class javax.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 class javax.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 class javax.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 class javax.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 class javax.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 class javax.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