Class 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 multi-line label. Calculates the resizing and centering characteristics.

Not affected by HTML formatting.

See Also:
  • Field Details

    • LEFT

      public static final int LEFT
      Indicator for left alignment.
      See Also:
    • CENTER

      public static final int CENTER
      Indicator for centering each line.
      See Also:
    • 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.
    • 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 to display.
      Parameters:
      label - String to display
    • setLabel

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

      public String getLabel()
      Returns the label text..
      Returns:
      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)
      Overrides:
      setForeground in class JComponent
    • setAlignment

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

      public void setVerticalAlignment(MultiLineLabel.VerticalAlignment alignment)
      Sets the vertical alignment of the text. The default is MultiLineLabel.VerticalAlignment.MIDDLE.
      Parameters:
      alignment - the 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()
    • getMarginWidth

      public final int getMarginWidth()
    • getMarginHeight

      public final int getMarginHeight()
    • addNotify

      public void addNotify()
      This method is invoked after this class 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()
      Overrides:
      getPreferredSize in class JComponent
    • getMinimumSize

      public Dimension getMinimumSize()
      Overrides:
      getMinimumSize in class JComponent
    • paint

      public void paint(Graphics g)
      Overrides:
      paint in class JComponent
    • main

      public static void main(String[] args)