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`

### 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`

### Constructor Summary

Constructors
Constructor and Description
`SubCategoryAxis(java.lang.String label)` Creates a new axis.

### Method Summary

Methods
`void` `addSubCategory(java.lang.Comparable subCategory)` Adds a sub-category to the axis and sends an `AxisChangeEvent` to all registered listeners.
`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, drawCategoryLabels, drawTickMarks, getCategoryEnd, getCategoryJava2DCoordinate, getCategoryLabelPositionOffset, getCategoryLabelPositions, getCategoryLabelToolTip, getCategoryMargin, getCategoryMiddle, getCategoryMiddle, getCategorySeriesMiddle, getCategorySeriesMiddle, getCategoryStart, getLowerMargin, getMaximumCategoryLabelLines, getMaximumCategoryLabelWidthRatio, getTickLabelFont, getTickLabelPaint, getUpperMargin, hashCode, refreshTicks, removeCategoryLabelToolTip, setCategoryLabelPositionOffset, setCategoryLabelPositions, setCategoryMargin, setLowerMargin, setMaximumCategoryLabelLines, setMaximumCategoryLabelWidthRatio, setTickLabelFont, setTickLabelPaint, setUpperMargin`

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

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

### Methods inherited from class java.lang.Object

`finalize, getClass, 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 and sends an `AxisChangeEvent` to all registered listeners.

Parameters:
  `subCategory` - the sub-category (`null` not permitted).

#### getSubLabelFont

    public java.awt.Font getSubLabelFont()

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

Returns:
  The font (never `null`).
See Also:
  `setSubLabelFont(Font)`

#### 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).
See Also:
  `getSubLabelFont()`

#### getSubLabelPaint

    public java.awt.Paint getSubLabelPaint()

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

Returns:
  The paint (never `null`).
See Also:
  `setSubLabelPaint(Paint)`

#### 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).
See Also:
  `getSubLabelPaint()`

#### 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.