## org.jfree.chart.title
Class Title

    java.lang.Object
      org.jfree.chart.title.Title

All Implemented Interfaces:
  java.lang.Cloneable, java.io.Serializable

Direct Known Subclasses:
  ImageTitle, LegendTitle, TextTitle

public abstract class Title
extends java.lang.Object
implements java.lang.Cloneable, java.io.Serializable

The base class for all chart titles. A chart can have multiple titles, appearing at the top, bottom, left or right of the chart.

Concrete implementations of this class will render text and images, and hence do the actual work of drawing titles.

Author:
  David Berry
See Also:
  Serialized Form

Field Summary
`static int` `BOTTOM` Useful constant for the title position (also used for vertical alignment).
`static int` `CENTER` Useful constant for the title alignment (horizontal or vertical).
`static org.jfree.ui.HorizontalAlignment` `DEFAULT_HORIZONTAL_ALIGNMENT` The default horizontal alignment.
`static org.jfree.ui.RectangleEdge` `DEFAULT_POSITION` The default title position.
`static org.jfree.ui.Spacer` `DEFAULT_SPACER` Default title spacer.
`static org.jfree.ui.VerticalAlignment` `DEFAULT_VERTICAL_ALIGNMENT` The default vertical alignment.
`static int` `EAST` Useful constant for the title position.
`static int` `LEFT` Useful constant for the title position (also used for horizontal alignment).
`static int` `MIDDLE` Useful constant for the title alignment (horizontal or vertical).
`static int` `NORTH` Useful constant for the title position.
`static int` `RIGHT` Useful constant for the title position (also used for horizontal alignment).
`static int` `SOUTH` Useful constant for the title position.
`static int` `TOP` Useful constant for the title position (also used for vertical alignment).
`static int` `WEST` Useful constant for the title position.

Constructor Summary
`protected` `Title()` Creates a new title, using default attributes where necessary.
`protected` `Title(org.jfree.ui.RectangleEdge position, org.jfree.ui.HorizontalAlignment horizontalAlignment, org.jfree.ui.VerticalAlignment verticalAlignment)` Creates a new title, using default attributes where necessary.
`protected` `Title(org.jfree.ui.RectangleEdge position, org.jfree.ui.HorizontalAlignment horizontalAlignment, org.jfree.ui.VerticalAlignment verticalAlignment, org.jfree.ui.Spacer spacer)` Creates a new title.

Method Summary
`void` `addChangeListener(TitleChangeListener listener)` Registers an object for notification of changes to the title.
`java.lang.Object` `clone()` Returns a clone of the title.
`abstract void` `draw(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D area)` Draws the title on a Java 2D graphics device (such as the screen or a printer).
`boolean` `equals(java.lang.Object obj)` Tests an object for equality with this title.
`org.jfree.ui.HorizontalAlignment` `getHorizontalAlignment()` Returns the horizontal alignment of the title.
`boolean` `getNotify()` Returns the flag that indicates whether or not the notification mechanism is enabled.
`org.jfree.ui.RectangleEdge` `getPosition()` Returns the position of the title.
`abstract float` `getPreferredHeight(java.awt.Graphics2D g2, float width)` Returns the preferred height of the title.
`abstract float` `getPreferredWidth(java.awt.Graphics2D g2, float height)` Returns the preferred width of the title.
`org.jfree.ui.Spacer` `getSpacer()` Returns the spacer which determines the blank space around the edges of the title.
`org.jfree.ui.VerticalAlignment` `getVerticalAlignment()` Returns the vertical alignment of the title.
`int` `hashCode()` Returns a hashcode for the title.
`protected void` `notifyListeners(TitleChangeEvent event)` Notifies all registered listeners that the chart title has changed in some way.
`void` `removeChangeListener(TitleChangeListener listener)` Unregisters an object for notification of changes to the chart title.
`void` `setHorizontalAlignment(org.jfree.ui.HorizontalAlignment alignment)` Sets the horizontal alignment for the title and sends a `TitleChangeEvent` to all registered listeners.
`void` `setNotify(boolean flag)` Sets the flag that indicates whether or not the notification mechanism is enabled.
`void` `setPosition(org.jfree.ui.RectangleEdge position)` Sets the position for the title and sends a `TitleChangeEvent` to all registered listeners.
`void` `setSpacer(org.jfree.ui.Spacer spacer)` Sets the spacer for the title and sends a `TitleChangeEvent` to all registered listeners.
`void` `setVerticalAlignment(org.jfree.ui.VerticalAlignment alignment)` Sets the vertical alignment for the title, and notifies any registered listeners of the change.

Methods inherited from class java.lang.Object
`finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### TOP

    public static final int TOP

  Useful constant for the title position (also used for vertical alignment).

  See Also:
    Constant Field Values

### BOTTOM

    public static final int BOTTOM

  Useful constant for the title position (also used for vertical alignment).

  See Also:
    Constant Field Values

### RIGHT

    public static final int RIGHT

  Useful constant for the title position (also used for horizontal alignment).

  See Also:
    Constant Field Values

### LEFT

    public static final int LEFT

  Useful constant for the title position (also used for horizontal alignment).

  See Also:
    Constant Field Values

### NORTH

    public static final int NORTH

  Useful constant for the title position.

  See Also:
    Constant Field Values

### SOUTH

    public static final int SOUTH

  Useful constant for the title position.

  See Also:
    Constant Field Values

### EAST

    public static final int EAST

  Useful constant for the title position.

  See Also:
    Constant Field Values

### WEST

    public static final int WEST

  Useful constant for the title position.

  See Also:
    Constant Field Values

### CENTER

    public static final int CENTER

  Useful constant for the title alignment (horizontal or vertical).

  See Also:
    Constant Field Values

### MIDDLE

    public static final int MIDDLE

  Useful constant for the title alignment (horizontal or vertical).

  See Also:
    Constant Field Values

### DEFAULT_POSITION

    public static final org.jfree.ui.RectangleEdge DEFAULT_POSITION

  The default title position.

### DEFAULT_HORIZONTAL_ALIGNMENT

    public static final org.jfree.ui.HorizontalAlignment DEFAULT_HORIZONTAL_ALIGNMENT

  The default horizontal alignment.

### DEFAULT_VERTICAL_ALIGNMENT

    public static final org.jfree.ui.VerticalAlignment DEFAULT_VERTICAL_ALIGNMENT

  The default vertical alignment.

### DEFAULT_SPACER

    public static final org.jfree.ui.Spacer DEFAULT_SPACER

  Default title spacer.

Constructor Detail

### Title

    protected Title()

  Creates a new title, using default attributes where necessary.

### Title

    protected Title(org.jfree.ui.RectangleEdge position,
                    org.jfree.ui.HorizontalAlignment horizontalAlignment,
                    org.jfree.ui.VerticalAlignment verticalAlignment)

  Creates a new title, using default attributes where necessary.

Parameters:
  `position` - the position of the title (`null` not permitted).
  `horizontalAlignment` - the horizontal alignment of the title (`null` not permitted).
  `verticalAlignment` - the vertical alignment of the title (`null` not permitted).

### Title

    protected Title(org.jfree.ui.RectangleEdge position,
                    org.jfree.ui.HorizontalAlignment horizontalAlignment,
                    org.jfree.ui.VerticalAlignment verticalAlignment,
                    org.jfree.ui.Spacer spacer)

  Creates a new title.

  This class defines constants for the valid position and alignment values --- an IllegalArgumentException will be thrown if invalid values are passed to this constructor.

Parameters:
  `position` - the position of the title (`null` not permitted).
  `horizontalAlignment` - the horizontal alignment of the title (LEFT, CENTER or RIGHT, `null` not permitted).
  `verticalAlignment` - the vertical alignment of the title (TOP, MIDDLE or BOTTOM, `null` not permitted).
  `spacer` - the amount of space to leave around the outside of the title (`null` not permitted).

Method Detail

### getPosition

    public org.jfree.ui.RectangleEdge getPosition()

  Returns the position of the title.

  Returns:
    the title position (never `null`).

### setPosition

    public void setPosition(org.jfree.ui.RectangleEdge position)

  Sets the position for the title and sends a `TitleChangeEvent` to all registered listeners.

  Parameters:
    `position` - the position (`null` not permitted).

### getHorizontalAlignment

    public org.jfree.ui.HorizontalAlignment getHorizontalAlignment()

  Returns the horizontal alignment of the title.

  Returns:
    the horizontal alignment (never `null`).

### setHorizontalAlignment

    public void setHorizontalAlignment(org.jfree.ui.HorizontalAlignment alignment)

  Sets the horizontal alignment for the title and sends a `TitleChangeEvent` to all registered listeners.

  Parameters:
    `alignment` - the horizontal alignment (`null` not permitted).

### getVerticalAlignment

    public org.jfree.ui.VerticalAlignment getVerticalAlignment()

  Returns the vertical alignment of the title.

  Returns:
    the vertical alignment (never `null`).

### setVerticalAlignment

    public void setVerticalAlignment(org.jfree.ui.VerticalAlignment alignment)

  Sets the vertical alignment for the title, and notifies any registered listeners of the change.

  Parameters:
    `alignment` - the new vertical alignment (TOP, MIDDLE or BOTTOM, `null` not permitted).

### getSpacer

    public org.jfree.ui.Spacer getSpacer()

  Returns the spacer which determines the blank space around the edges of the title.

  Returns:
    The spacer (never `null`).

### setSpacer

    public void setSpacer(org.jfree.ui.Spacer spacer)

  Sets the spacer for the title and sends a `TitleChangeEvent` to all registered listeners.

  Parameters:
    `spacer` - the new spacer (`null` not permitted).

### getNotify

    public boolean getNotify()

  Returns the flag that indicates whether or not the notification mechanism is enabled.

  Returns:
    the flag.

### setNotify

    public void setNotify(boolean flag)

  Sets the flag that indicates whether or not the notification mechanism is enabled. There are certain situations (such as cloning) where you want to turn notification off temporarily.

  Parameters:
    `flag` - the new value of the flag.

### getPreferredWidth

    public abstract float getPreferredWidth(java.awt.Graphics2D g2,
                                            float height)

  Returns the preferred width of the title. When a title is displayed at the left or right of a chart, the chart will attempt to give the title enough space for it's preferred width.

  Parameters:
    `g2` - the graphics device.
    `height` - the height.
  Returns:
    the preferred width of the title.

### getPreferredHeight

    public abstract float getPreferredHeight(java.awt.Graphics2D g2,
                                             float width)

  Returns the preferred height of the title. When a title is displayed at the top or bottom of a chart, the chart will attempt to give the title enough space for it's preferred height.

  Parameters:
    `g2` - the graphics device.
    `width` - the width.
  Returns:
    the preferred height of the title.

### draw

    public abstract void draw(java.awt.Graphics2D g2,
                              java.awt.geom.Rectangle2D area)

  Draws the title on a Java 2D graphics device (such as the screen or a printer).

  Parameters:
    `g2` - the graphics device.
    `area` - the area allocated for the title.

### clone

    public java.lang.Object clone()
                           throws java.lang.CloneNotSupportedException

  Returns a clone of the title.

  One situation when this is useful is when editing the title properties - you can edit a clone, and then it is easier to cancel the changes if necessary.

  Returns:
    a clone of the title.
  Throws:
    `java.lang.CloneNotSupportedException` - not thrown by this class, but it may be thrown by subclasses.

### addChangeListener

    public void addChangeListener(TitleChangeListener listener)

  Registers an object for notification of changes to the title.

  Parameters:
    `listener` - the object that is being registered.

### removeChangeListener

    public void removeChangeListener(TitleChangeListener listener)

  Unregisters an object for notification of changes to the chart title.

  Parameters:
    `listener` - the object that is being unregistered.

### notifyListeners

    protected void notifyListeners(TitleChangeEvent event)

  Notifies all registered listeners that the chart title has changed in some way.

  Parameters:
    `event` - an object that contains information about the change to the title.

### equals

    public boolean equals(java.lang.Object obj)

  Tests an object for equality with this title.

  Parameters:
    `obj` - the object.
  Returns:
    `true` or `false`.

### hashCode

    public int hashCode()

  Returns a hashcode for the title.

  Returns:
    the hashcode.