## org.jfree.chart.axis
Class SubCategoryAxis

    java.lang.Object
      org.jfree.chart.axis.Axis
          org.jfree.chart.axis.CategoryAxis
              org.jfree.chart.axis.SubCategoryAxis

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

    public class SubCategoryAxis

extends CategoryAxis
implements java.lang.Cloneable, java.io.Serializable

A specialised category axis that can display sub-categories.

See Also:
  Serialized Form

Field Summary

Fields inherited from class org.jfree.chart.axis.CategoryAxis
`DEFAULT_AXIS_MARGIN, DEFAULT_CATEGORY_MARGIN, logger`

Fields inherited from class org.jfree.chart.axis.Axis

`DEFAULT_AXIS_LABEL_FONT, DEFAULT_AXIS_LABEL_INSETS, DEFAULT_AXIS_LABEL_PAINT, DEFAULT_AXIS_LINE_PAINT, DEFAULT_AXIS_LINE_STROKE, DEFAULT_AXIS_VISIBLE, DEFAULT_TICK_LABEL_FONT, DEFAULT_TICK_LABEL_INSETS, DEFAULT_TICK_LABEL_PAINT, DEFAULT_TICK_LABELS_VISIBLE, DEFAULT_TICK_MARK_INSIDE_LENGTH, DEFAULT_TICK_MARK_OUTSIDE_LENGTH, DEFAULT_TICK_MARK_PAINT, DEFAULT_TICK_MARK_STROKE, DEFAULT_TICK_MARKS_VISIBLE, LOGGER`

Constructor Summary
`SubCategoryAxis(java.lang.String label)` Creates a new axis.

Method Summary
`void` `addSubCategory(java.lang.Comparable subCategory)` Adds a sub-category to the axis.
`AxisState` `draw(java.awt.Graphics2D g2, double cursor, java.awt.geom.Rectangle2D plotArea, java.awt.geom.Rectangle2D dataArea, org.jfree.ui.RectangleEdge edge, PlotRenderingInfo plotState)` Draws the axis on a Java 2D graphics device (such as the screen or a printer).
`protected AxisState` `drawSubCategoryLabels(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D plotArea, java.awt.geom.Rectangle2D dataArea, org.jfree.ui.RectangleEdge edge, AxisState state, PlotRenderingInfo plotState)` Draws the category labels and returns the updated axis state.
`boolean` `equals(java.lang.Object obj)` Tests the axis for equality with an arbitrary object.
`java.awt.Font` `getSubLabelFont()` Returns the font used to display the sub-category labels.
`java.awt.Paint` `getSubLabelPaint()` Returns the paint used to display the sub-category labels.
`AxisSpace` `reserveSpace(java.awt.Graphics2D g2, Plot plot, java.awt.geom.Rectangle2D plotArea, org.jfree.ui.RectangleEdge edge, AxisSpace space)` Estimates the space required for the axis, given a specific drawing area.
`void` `setSubLabelFont(java.awt.Font font)` Sets the font used to display the sub-category labels and sends an `AxisChangeEvent` to all registered listeners.
`void` `setSubLabelPaint(java.awt.Paint paint)` Sets the paint used to display the sub-category labels and sends an `AxisChangeEvent` to all registered listeners.

Methods inherited from class org.jfree.chart.axis.CategoryAxis

`addCategoryLabelToolTip, calculateCategoryGapSize, calculateCategorySize, calculateTextBlockHeight, calculateTextBlockWidth, clearCategoryLabelToolTips, clone, configure, createLabel, drawCategoryLabels, getCategoryEnd, getCategoryJava2DCoordinate, getCategoryLabelPositionOffset, getCategoryLabelPositions, getCategoryMargin, getCategoryMiddle, getCategoryStart, getLowerMargin, getMaximumCategoryLabelLines, getMaximumCategoryLabelWidthRatio, getUpperMargin, refreshTicks, removeCategoryLabelToolTip, setCategoryLabelPositionOffset, setCategoryLabelPositions, setCategoryMargin, setLowerMargin, setMaximumCategoryLabelLines, setMaximumCategoryLabelWidthRatio, setUpperMargin`

Methods inherited from class org.jfree.chart.axis.Axis

`addChangeListener, drawAxisLine, drawLabel, getAxisLinePaint, getAxisLineStroke, getFixedDimension, getLabel, getLabelAngle, getLabelEnclosure, getLabelFont, getLabelInsets, getLabelPaint, getPlot, getTickLabelFont, getTickLabelInsets, getTickLabelPaint, getTickMarkInsideLength, getTickMarkOutsideLength, getTickMarkPaint, getTickMarkStroke, isAxisLineVisible, isTickLabelsVisible, isTickMarksVisible, isVisible, notifyListeners, removeChangeListener, setAxisLinePaint, setAxisLineStroke, setAxisLineVisible, setFixedDimension, setLabel, setLabelAngle, setLabelFont, setLabelInsets, setLabelPaint, setPlot, setTickLabelFont, setTickLabelInsets, setTickLabelPaint, setTickLabelsVisible, setTickMarkInsideLength, setTickMarkOutsideLength, setTickMarkPaint, setTickMarkStroke, setTickMarksVisible, setVisible`

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

Constructor Detail

### SubCategoryAxis

    public SubCategoryAxis(java.lang.String label)

  Creates a new axis.

  Parameters:
    `label` - the axis label.

Method Detail

### addSubCategory

    public void addSubCategory(java.lang.Comparable subCategory)

  Adds a sub-category to the axis.

  Parameters:
    `subCategory` - the sub-category.

### getSubLabelFont

    public java.awt.Font getSubLabelFont()

  Returns the font used to display the sub-category labels.

  Returns:
    The font (never `null`).

### setSubLabelFont

    public void setSubLabelFont(java.awt.Font font)

  Sets the font used to display the sub-category labels and sends an `AxisChangeEvent` to all registered listeners.

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

### getSubLabelPaint

    public java.awt.Paint getSubLabelPaint()

  Returns the paint used to display the sub-category labels.

  Returns:
    The paint (never `null`).

### setSubLabelPaint

    public void setSubLabelPaint(java.awt.Paint paint)

  Sets the paint used to display the sub-category labels and sends an `AxisChangeEvent` to all registered listeners.

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

### reserveSpace

    public AxisSpace reserveSpace(java.awt.Graphics2D g2,
                                  Plot plot,
                                  java.awt.geom.Rectangle2D plotArea,
                                  org.jfree.ui.RectangleEdge edge,
                                  AxisSpace space)

  Estimates the space required for the axis, given a specific drawing area.

  Overrides:
    `reserveSpace` in class `CategoryAxis`
  Parameters:
    `g2` - the graphics device (used to obtain font information).
    `plot` - the plot that the axis belongs to.
    `plotArea` - the area within which the axis should be drawn.
    `edge` - the axis location (top or bottom).
    `space` - the space already reserved.
  Returns:
    The space required to draw the axis.

### draw

    public AxisState draw(java.awt.Graphics2D g2,
                          double cursor,
                          java.awt.geom.Rectangle2D plotArea,
                          java.awt.geom.Rectangle2D dataArea,
                          org.jfree.ui.RectangleEdge edge,
                          PlotRenderingInfo plotState)

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

  Overrides:
    `draw` in class `CategoryAxis`
  Parameters:
    `g2` - the graphics device (`null` not permitted).
    `cursor` - the cursor location.
    `plotArea` - the area within which the axis should be drawn (`null` not permitted).
    `dataArea` - the area within which the plot is being drawn (`null` not permitted).
    `edge` - the location of the axis (`null` not permitted).
    `plotState` - collects information about the plot (`null` permitted).
  Returns:
    the axis state (never `null`).

### drawSubCategoryLabels

    protected AxisState drawSubCategoryLabels(java.awt.Graphics2D g2,
                                              java.awt.geom.Rectangle2D plotArea,
                                              java.awt.geom.Rectangle2D dataArea,
                                              org.jfree.ui.RectangleEdge edge,
                                              AxisState state,
                                              PlotRenderingInfo plotState)

  Draws the category labels and returns the updated axis state.

  Parameters:
    `g2` - the graphics device (`null` not permitted).
    `plotArea` - the plot area (`null` not permitted).
    `dataArea` - the area inside the axes (`null` not permitted).
    `edge` - the axis location (`null` not permitted).
    `state` - the axis state (`null` not permitted).
    `plotState` - collects information about the plot (`null` permitted).
  Returns:
    the updated axis state (never `null`).

### equals

    public boolean equals(java.lang.Object obj)

  Tests the axis for equality with an arbitrary object.

  Overrides:
    `equals` in class `CategoryAxis`
  Parameters:
    `obj` - the object (`null` permitted).
  Returns:
    A boolean.