com.ijchart.xychart.axis
Class AbstractAxis

java.lang.Object
  extended by com.ijchart.xychart.axis.AbstractAxis
All Implemented Interfaces:
IAxis, java.io.Serializable, java.lang.Cloneable
Direct Known Subclasses:
AbstractValueAxis, CategoryAxis

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

Title: IJChart

Description: a chart library for the Java(tm) platform.

实现IJChart中的各种坐标轴的抽象实现,坐标轴可分为两大类,一类是显示图表数据分类值(x轴),一类用于显示 数据值(y轴).

Copyright: Copyright (c) 2013

Company:

Version:
1.0
Author:
zhang feng min,shanghai china. Contract me by email.
See Also:
Serialized Form

Field Summary
static java.awt.Paint DEFAULT_3D_AXIS_FILL_PAINT
          缺省3D坐标轴的填充Paint.
static java.awt.Font DEFAULT_AXIS_LABEL_FONT
          缺省的坐标轴标签字体.
static RectangleInsets DEFAULT_AXIS_LABEL_INSETS
          缺省坐标轴空白.
static java.awt.Paint DEFAULT_AXIS_LABEL_PAINT
          缺省坐标轴标签Paint
static AxisLabelType DEFAULT_AXIS_LABEL_TYPE
          缺省坐标轴标签类型.
static boolean DEFAULT_AXIS_LABEL_VISIBLE
          缺省坐标轴标签是否显示.
static java.awt.Stroke DEFAULT_AXIS_LINE_STROKE
          缺省坐标轴的轴线Stroke.
static boolean DEFAULT_AXIS_LINE_VISIBLE
          缺省控制坐标轴的轴线是否显示的标记.
static boolean DEFAULT_AXIS_VISIBLE
          缺省图表坐标轴是否显示.
static boolean DEFAULT_DRAW_EMPTY_LABEL_TICK_MARK
          缺省是否绘制空标签的刻度线.
static double DEFAULT_FIXED_AXIS_SPACE
          缺省的固定的坐标轴绘制宽度或高度.
static boolean DEFAULT_GRID_LINE_VISIBLE
          缺省是否显示网格线.
static HorizontalAlignment DEFAULT_LABEL_HORIZONTAL_ALIGNMENT
          缺省标签水平对齐方式.
static float DEFAULT_MAXIMUM_CATEGORY_LABEL_WIDTH_RATIO
          坐标轴标签部分占整个图形区域宽度或长度的最大百分比的缺省值.
static java.awt.Font DEFAULT_TICK_LABEL_FONT
          缺省坐标轴刻度值字体.
static RectangleInsets DEFAULT_TICK_LABEL_INSETS
          缺省坐标轴刻度值空白.
static VerticalAlignment DEFAULT_TICK_LABEL_VERTICAL_ALIGNMENT
          缺省坐标轴刻度值垂直对齐方式.
static boolean DEFAULT_TICK_LABELS_VISIBLE
          缺省坐标轴刻度值是否显示.
static float DEFAULT_TICK_MARK_OUTSIDE_LENGTH
          缺省坐标轴刻度外部显示的长度.
 
Constructor Summary
protected AbstractAxis(IMatrixDataset dataset)
          由数据集构造对象.
protected AbstractAxis(java.lang.String label, IMatrixDataset dataset)
          由坐标轴标签和数据集构造对象.
 
Method Summary
 void addChangeListener(IAxisChangeListener listener)
          增加一个监听器.
 double calculateAxisSpace(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D plotArea, java.awt.geom.Rectangle2D maxAxisArea, RectangleEdge edge)
          计算绘制坐标轴所需要的宽度或高度.
protected  java.awt.geom.Rectangle2D calculateLabelBound(java.awt.Graphics2D g2, double labelMaxWidth, double labelMaxHeight, double labelAngle, RectangleEdge edge, java.lang.String[] seriesLabel, java.awt.Font labelFont, RectangleInsets inset)
          计算包含标签的矩形.
 java.lang.Object clone()
          覆盖clone方法.
protected  IChartShape createAxisLabelChartShape(java.awt.geom.Rectangle2D axisLabelDrawRect)
          创建一个RectangleTextChartShape对象.
protected  double dawAxisLabel(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D axisArea, RectangleEdge edge, AxisShapeCollection shapeCollection, double cursor)
          绘制坐标轴标签.
 double draw(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D plotArea, java.awt.geom.Rectangle2D axisArea, RectangleEdge edge, AxisShapeCollection shapeCollection, boolean alignEdge)
          在图表的plot区域(plotArea)绘制X轴或Y轴.图表中的所有图形存放在shapeCollection集合中.
protected  double drawAxis3DLine(IEffect3D effect3D, java.awt.geom.Rectangle2D axisArea, RectangleEdge edge, AxisShapeCollection shapeCollection)
          绘制坐标轴线
protected  double drawAxisLine(java.awt.geom.Rectangle2D axisArea, RectangleEdge edge, AxisShapeCollection shapeCollection)
          绘制坐标轴线
abstract  void drawGridLine(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D dataArea, RectangleEdge axisEdge, RenderShapeCollection shapeCollection, java.awt.Stroke stroke, java.awt.Paint paint)
          绘制网格线,须在IAxis.draw()方法之后调用.
protected abstract  double drawTickLabel(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D plotArea, java.awt.geom.Rectangle2D axisArea, RectangleEdge edge, AxisShapeCollection shapeCollection, double cursor)
          绘制坐标轴上的刻度值的标签.
protected abstract  double drawTickMark(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D axisArea, RectangleEdge edge, AxisShapeCollection shapeCollection, double cursor)
          绘制坐标轴上的刻度.
 boolean equals(java.lang.Object obj)
          测试两个对象是否相等.
protected  void fireAxisChanged()
          通过所有监听器坐标轴发生了变化.
 java.awt.Paint getAxis3DFillPaint()
          返回3D坐标轴的填充Paint.
 double getAxisLabelAngle()
          返回标签的旋转角度,单位为弧度.
 java.awt.Font getAxisLabelFont()
          返回标签字体.
 HorizontalAlignment getAxisLabelHorizontalAlign()
          返回标签的水平对齐方式.
 RectangleInsets getAxisLabelInsets()
          标签的空白.
 java.awt.Paint getAxisLabelPaint()
          返回坐标轴标签的Paint.
 AxisLabelType getAxisLabelType()
          返回坐标轴标签类型.
 java.awt.Paint getAxisLinePaint()
          返回坐标轴轴线的Paint.
 java.awt.Stroke getAxisLineStroke()
          返回坐标轴轴线的Stroke.
 IFormatter getColKeyFormatter()
          返回用于格式化数据集中的colKey值.
 IFormatter getDataFormatter()
          返回用于格式化数据集中的数据值.
 IMatrixDataset getDataset()
          返回数据集.
 double getFixedAxisSpace()
          返回固定的坐标轴绘制宽度或高度.
protected abstract  java.lang.String[] getFormatedTickLabels(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D maxAxisArea, RectangleEdge edge)
          返回格式化后的在坐标轴上显示的刻度值.
 double getLowerMargin()
          返回坐标轴开始端的空白区域,单位为百分比.
 float getMaximumCategoryLabelWidthRatio()
          返回坐标轴标签部分占整个图形区域宽度或长度的最大百分比.
 IFormatter getRowKeyFormatter()
          返回用于格式化数据集中的rowKey值.
 double getTickLabelAngle()
          返回坐标轴刻度值旋转的弧度.
 java.awt.Font getTickLabelFont()
          返回坐标轴刻度的字体.
 java.awt.Font getTickLabelFont(java.lang.Object tickLabel)
          返回坐标轴刻度的字体.
 HorizontalAlignment getTickLabelHorizontalAlign()
          返回刻度值的水平对齐方式.
 RectangleInsets getTickLabelInsets()
          返回坐标轴刻度值的空白.
protected  int getTickLabelLines()
          返回坐标轴刻度值的行数.
 java.awt.Paint getTickLabelPaint()
          返回坐标轴刻度值的Paint.
 java.awt.Paint getTickLabelPaint(java.lang.Object tickLabel)
          返回坐标轴刻度值的Paint.
protected  java.awt.geom.Rectangle2D getTickLabelRotateBound(java.awt.geom.Rectangle2D rect, double angle)
          计算坐标轴刻度值的外边界旋转后的边界.
 VerticalAlignment getTickLabelVerticalAlign()
          返回刻度值的垂直对齐方式.
 float getTickMarkInsideLength()
          返回坐标轴刻度值在数据区内部的长度.
 float getTickMarkOutsideLength()
          返回坐标轴刻度值在数据区外部的长度.
 java.awt.Paint getTickMarkPaint()
          返回坐标轴刻度的Paint.
 java.awt.Stroke getTickMarkStroke()
          返回坐标轴刻度的Stroke.
 double getUpperMargin()
          返回坐标轴结束端的空白区域,单位为百分比.
 int hashCode()
          覆盖hashCode方法.
 boolean hasListener(java.util.EventListener listener)
          判断是否有监听器对象listener.
 boolean isAxisLabelVisible()
          返回坐标轴标签是否可见,可见返回true,否则返回false.
 boolean isAxisLineVisible()
          返回坐标轴轴线是否显示.
 boolean isDrawEmptyLabelTickMark()
          返回是否绘制空标签的刻度线.
 boolean isGridLineVisible()
          返回是否显示网格线.
 boolean isTickLabelsVisible()
          返回坐标轴刻度值是否显示.
 boolean isTickMarkVisible()
          返回刻度值是否可见.
 boolean isVisible()
          返回坐标轴是否可见,可见返回true,否则返回false.
protected  void notifyListeners(AxisChangeEvent event)
          通知所有的监听器对象,坐轴标发生了变化
 void removeChangeListener(IAxisChangeListener listener)
          删除一个监听器.
 void setAutoSelectTickLabelAlign(boolean autoSelectTickLabelAlign)
          设置是否自动选择标签的对齐方式.
 void setAxis3DFillPaint(java.awt.Paint axis3DFillPaint)
          设置3D坐标轴的填充Paint,并向所有监听器发送 RenderChangeEvent事件.
 void setAxisLabelAngle(double angle)
          设置标签的旋转角度,并向所有监听器发送AxisChangeEvent事件.
 void setAxisLabelFont(java.awt.Font font)
          设置坐标轴标签的字体,并向所有监听器发送AxisChangeEvent事件.
 void setAxisLabelHorizontalAlign(HorizontalAlignment horizontalAlign)
          设置标签水平对齐方式,并向所有监听器发送AxisChangeEvent事件.
 void setAxisLabelInsets(RectangleInsets insets)
          设置标签的空白,并向所有监听器发送AxisChangeEvent事件.
 void setAxisLabelPaint(java.awt.Paint paint)
          设置坐标轴标签Paint,并向所有监听器发送AxisChangeEvent事件.
 void setAxisLabelType(AxisLabelType axisLabelType)
          设置坐标轴标签类型,并向所有监听器发送AxisChangeEvent事件.
 void setAxisLabelVisible(boolean visible)
          设置坐标轴标签是否可见,并向所有监听器发送AxisChangeEvent事件.
 void setAxisLinePaint(java.awt.Paint paint)
          设置坐标轴轴线的Paint,并向所有监听器发送AxisChangeEvent事件.
 void setAxisLineStroke(java.awt.Stroke stroke)
          设置坐标轴轴线的Paint,并向所有监听器发送AxisChangeEvent事件.
 void setAxisLineVisible(boolean visible)
          设置坐标轴轴线是否显示.
 void setColKeyFormatter(IFormatter colKeyFormatter)
          设置用于格式化数据集中的colKey值,并向所有监听器发送AxisChangeEvent事件.
 void setDataFormatter(IFormatter dataFormatter)
          设置用于格式化数据集中的数据值,并向所有监听器发送AxisChangeEvent事件.
 void setDataset(IMatrixDataset dataset)
          设置数据集,并向所有监听器发送AxisChangeEvent事件.
 void setDrawEmptyLabelTickMark(boolean flag)
          设置是否绘制空标签的刻度线,并向所有监听器发送 AxisChangeEvent事件.
 void setFixedAxisSpace(double space)
          设置固定的坐标轴绘制宽度或高度,并向所有监听器发送 AxisChangeEvent事件.
 void setGridLineVisible(boolean flag)
          设置是否显示网格线,并向所有监听器发送AxisChangeEvent事件.
 void setLowerMargin(double margin)
          设置坐标轴开始端的空白区域(单位为百分比),并向所有监听器发送AxisChangeEvent事件.
 void setMaximumCategoryLabelWidthRatio(float ratio)
          设置坐标轴标签部分占整个图形区域宽度或长度的最大百分比, 并向所有监听器发送AxisChangeEvent事件.
 void setRowKeyFormatter(IFormatter rowKeyFormatter)
          设置用于格式化数据集中的rowKey值,并向所有监听器发送AxisChangeEvent事件.
 void setTickLabelAngle(double tickLabelAngle)
          * 设置坐标轴刻度值旋转的弧度,并向所有监听器发送AxisChangeEvent事件.
 void setTickLabelFont(java.awt.Font font)
          设置坐标轴刻度值的字体,并向所有监听器发送AxisChangeEvent事件.
 void setTickLabelFont(java.lang.Object tickLabel, java.awt.Font font)
          给坐标轴刻度值标签设置字体,并向所有监听器发送AxisChangeEvent事件.
 void setTickLabelHorizontalAlign(HorizontalAlignment horizontalAlign)
          设置刻度值水平对齐方式,并向所有监听器发送AxisChangeEvent事件.
 void setTickLabelInsets(RectangleInsets insets)
          设置坐标轴刻度值的空白,并向所有监听器发送AxisChangeEvent事件.
 void setTickLabelPaint(java.lang.Object tickLabel, java.awt.Paint paint)
          给坐标轴刻度值标签设置Paint,并向所有监听器发送AxisChangeEvent事件.
 void setTickLabelPaint(java.awt.Paint paint)
          设置坐标轴刻度值的Paint,并向所有监听器发送AxisChangeEvent事件.
 void setTickLabelsVisible(boolean flag)
          设置坐标轴刻度值是否可见,并向所有监听器发送AxisChangeEvent事件.
 void setTickLabelVerticalAlign(VerticalAlignment verticalAlign)
          设置刻度值垂直对齐方式,并向所有监听器发送AxisChangeEvent事件.
 void setTickMarkInsideLength(float length)
          设置坐标轴刻度在数据区内部的长度,并向所有监听器发送AxisChangeEvent事件.
 void setTickMarkOutsideLength(float length)
          设置坐标轴刻度在数据区外部的长度,并向所有监听器发送AxisChangeEvent事件.
 void setTickMarkPaint(java.awt.Paint paint)
          设置坐标轴刻度的Paint,并向所有监听器发送AxisChangeEvent事件.
 void setTickMarkStroke(java.awt.Stroke stroke)
          设置坐标轴刻度的Stroke,并向所有监听器发送AxisChangeEvent事件.
 void setTickMarkVisible(boolean flag)
          设置坐标轴刻度值是否可见,并向所有监听器发送AxisChangeEvent事件.
 void setUpperMargin(double margin)
          设置坐标轴结束端的空白区域(单位为百分比),并向所有监听器发送AxisChangeEvent事件.
 void setVisible(boolean visible)
          设置坐标轴是否可见,并向所有监听器发送AxisChangeEvent事件.
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_AXIS_VISIBLE

public static final boolean DEFAULT_AXIS_VISIBLE
缺省图表坐标轴是否显示.

See Also:
Constant Field Values

DEFAULT_AXIS_LABEL_FONT

public static final java.awt.Font DEFAULT_AXIS_LABEL_FONT
缺省的坐标轴标签字体.


DEFAULT_AXIS_LABEL_PAINT

public static final java.awt.Paint DEFAULT_AXIS_LABEL_PAINT
缺省坐标轴标签Paint


DEFAULT_AXIS_LABEL_INSETS

public static final RectangleInsets DEFAULT_AXIS_LABEL_INSETS
缺省坐标轴空白.


DEFAULT_AXIS_LINE_VISIBLE

public static final boolean DEFAULT_AXIS_LINE_VISIBLE
缺省控制坐标轴的轴线是否显示的标记.

See Also:
Constant Field Values

DEFAULT_AXIS_LINE_PAINT

public static final java.awt.Paint DEFAULT_AXIS_LINE_PAINT
缺省坐标轴的轴线Paint.


DEFAULT_3D_AXIS_FILL_PAINT

public static final java.awt.Paint DEFAULT_3D_AXIS_FILL_PAINT
缺省3D坐标轴的填充Paint.


DEFAULT_AXIS_LINE_STROKE

public static final java.awt.Stroke DEFAULT_AXIS_LINE_STROKE
缺省坐标轴的轴线Stroke.


DEFAULT_TICK_LABELS_VISIBLE

public static final boolean DEFAULT_TICK_LABELS_VISIBLE
缺省坐标轴刻度值是否显示.

See Also:
Constant Field Values

DEFAULT_TICK_LABEL_FONT

public static final java.awt.Font DEFAULT_TICK_LABEL_FONT
缺省坐标轴刻度值字体.


DEFAULT_TICK_LABEL_PAINT

public static final java.awt.Paint DEFAULT_TICK_LABEL_PAINT
缺省坐标轴刻度值Paint.


DEFAULT_TICK_LABEL_INSETS

public static final RectangleInsets DEFAULT_TICK_LABEL_INSETS
缺省坐标轴刻度值空白.


DEFAULT_TICK_MARKS_VISIBLE

public static final boolean DEFAULT_TICK_MARKS_VISIBLE
缺省坐标轴刻度值是否显示.

See Also:
Constant Field Values

DEFAULT_AXIS_LABEL_VISIBLE

public static final boolean DEFAULT_AXIS_LABEL_VISIBLE
缺省坐标轴标签是否显示.

See Also:
Constant Field Values

DEFAULT_TICK_MARK_STROKE

public static final java.awt.Stroke DEFAULT_TICK_MARK_STROKE
缺省坐标轴刻度值Stroke.


DEFAULT_TICK_MARK_PAINT

public static final java.awt.Paint DEFAULT_TICK_MARK_PAINT
缺省坐标轴刻度Paint.


DEFAULT_GRID_LINE_VISIBLE

public static final boolean DEFAULT_GRID_LINE_VISIBLE
缺省是否显示网格线.

See Also:
Constant Field Values

DEFAULT_TICK_MARK_INSIDE_LENGTH

public static final float DEFAULT_TICK_MARK_INSIDE_LENGTH
缺省坐标轴刻度内部显示的长度.

See Also:
Constant Field Values

DEFAULT_TICK_MARK_OUTSIDE_LENGTH

public static final float DEFAULT_TICK_MARK_OUTSIDE_LENGTH
缺省坐标轴刻度外部显示的长度.

See Also:
Constant Field Values

DEFAULT_TICK_LABEL_HORIZONTAL_ALIGNMENT

public static final HorizontalAlignment DEFAULT_TICK_LABEL_HORIZONTAL_ALIGNMENT
缺省坐标轴刻度值水平对齐方式.


DEFAULT_TICK_LABEL_VERTICAL_ALIGNMENT

public static final VerticalAlignment DEFAULT_TICK_LABEL_VERTICAL_ALIGNMENT
缺省坐标轴刻度值垂直对齐方式.


DEFAULT_LABEL_HORIZONTAL_ALIGNMENT

public static final HorizontalAlignment DEFAULT_LABEL_HORIZONTAL_ALIGNMENT
缺省标签水平对齐方式.


DEFAULT_AUTO_SELECT_TICK_LABEL_ALIGN

public static final boolean DEFAULT_AUTO_SELECT_TICK_LABEL_ALIGN
缺省是否自动选择标签的对齐方式.

See Also:
Constant Field Values

DEFAULT_AXIS_MARGIN

public static final double DEFAULT_AXIS_MARGIN
坐标轴两端的空白区域的缺省值,单位为百分比.

See Also:
Constant Field Values

WIDTH_TICK_MARK_AND_TICK_LABEL

public static final double WIDTH_TICK_MARK_AND_TICK_LABEL
刻度和刻度值之间的距离.

See Also:
Constant Field Values

DEFAULT_AXIS_LABEL_TYPE

public static final AxisLabelType DEFAULT_AXIS_LABEL_TYPE
缺省坐标轴标签类型.


DEFAULT_FIXED_AXIS_SPACE

public static final double DEFAULT_FIXED_AXIS_SPACE
缺省的固定的坐标轴绘制宽度或高度.

See Also:
Constant Field Values

DEFAULT_MAXIMUM_CATEGORY_LABEL_WIDTH_RATIO

public static final float DEFAULT_MAXIMUM_CATEGORY_LABEL_WIDTH_RATIO
坐标轴标签部分占整个图形区域宽度或长度的最大百分比的缺省值.

See Also:
Constant Field Values

DEFAULT_DRAW_EMPTY_LABEL_TICK_MARK

public static final boolean DEFAULT_DRAW_EMPTY_LABEL_TICK_MARK
缺省是否绘制空标签的刻度线.

See Also:
Constant Field Values
Constructor Detail

AbstractAxis

protected AbstractAxis(IMatrixDataset dataset)
由数据集构造对象.

Parameters:
dataset - IMatrixDataset 二维矩阵数据集 (不可为null).

AbstractAxis

protected AbstractAxis(java.lang.String label,
                       IMatrixDataset dataset)
由坐标轴标签和数据集构造对象.

Parameters:
label - 坐标轴标签.
dataset - IMatrixDataset 二维矩阵数据集 (不可为null).
Method Detail

isVisible

public boolean isVisible()
返回坐标轴是否可见,可见返回true,否则返回false.

Returns:
A boolean.

setVisible

public void setVisible(boolean visible)
设置坐标轴是否可见,并向所有监听器发送AxisChangeEvent事件.

Parameters:
visible - the flag.

isAxisLabelVisible

public boolean isAxisLabelVisible()
返回坐标轴标签是否可见,可见返回true,否则返回false.

Returns:
A boolean.

setAxisLabelVisible

public void setAxisLabelVisible(boolean visible)
设置坐标轴标签是否可见,并向所有监听器发送AxisChangeEvent事件.

Parameters:
visible - the flag.

getAxisLabel

public java.lang.String getAxisLabel()
返回坐标轴的标签.

Returns:
坐标轴的标签(可能为null).

setAxisLabel

public void setAxisLabel(java.lang.String label)
设置坐标轴的标签,并向所有监听器发送AxisChangeEvent事件.

Parameters:
label - 新的标签 (可为null).

getAxisLabelFont

public java.awt.Font getAxisLabelFont()
返回标签字体.

Returns:
标签字体.

setAxisLabelFont

public void setAxisLabelFont(java.awt.Font font)
设置坐标轴标签的字体,并向所有监听器发送AxisChangeEvent事件.

Parameters:
font - 标签的字体 (不可为null).

getAxisLabelPaint

public java.awt.Paint getAxisLabelPaint()
返回坐标轴标签的Paint.

Returns:
坐标轴标签的Paint.

setAxisLabelPaint

public void setAxisLabelPaint(java.awt.Paint paint)
设置坐标轴标签Paint,并向所有监听器发送AxisChangeEvent事件.

Parameters:
paint - 标签的Paint (不可为null).

getAxisLabelInsets

public RectangleInsets getAxisLabelInsets()
标签的空白.

Returns:
标签的空白 (不为null).

setAxisLabelInsets

public void setAxisLabelInsets(RectangleInsets insets)
设置标签的空白,并向所有监听器发送AxisChangeEvent事件.

Parameters:
insets - 标签的空白 (不可为null).

getAxisLabelAngle

public double getAxisLabelAngle()
返回标签的旋转角度,单位为弧度.

Returns:
标签的旋转角度,单位为弧度.

setAxisLabelAngle

public void setAxisLabelAngle(double angle)
设置标签的旋转角度,并向所有监听器发送AxisChangeEvent事件.

Parameters:
angle - 标签的旋转角度,单位为弧度.

isAxisLineVisible

public boolean isAxisLineVisible()
返回坐标轴轴线是否显示.

Returns:
A boolean.

setAxisLineVisible

public void setAxisLineVisible(boolean visible)
设置坐标轴轴线是否显示.

Parameters:
visible - the flag.

getAxisLinePaint

public java.awt.Paint getAxisLinePaint()
返回坐标轴轴线的Paint.

Returns:
坐标轴轴线的Paint (不为null).

setAxisLinePaint

public void setAxisLinePaint(java.awt.Paint paint)
设置坐标轴轴线的Paint,并向所有监听器发送AxisChangeEvent事件.

Parameters:
paint - 坐标轴轴线的Paint (不可为null).

getAxis3DFillPaint

public java.awt.Paint getAxis3DFillPaint()
返回3D坐标轴的填充Paint.

Returns:
Paint 3D坐标轴的填充Paint.

setAxis3DFillPaint

public void setAxis3DFillPaint(java.awt.Paint axis3DFillPaint)
设置3D坐标轴的填充Paint,并向所有监听器发送 RenderChangeEvent事件.

Parameters:
axis3DFillPaint - Paint 3D坐标轴的填充Paint.

getAxisLineStroke

public java.awt.Stroke getAxisLineStroke()
返回坐标轴轴线的Stroke.

Returns:
坐标轴轴线的Stroke.

setAxisLineStroke

public void setAxisLineStroke(java.awt.Stroke stroke)
设置坐标轴轴线的Paint,并向所有监听器发送AxisChangeEvent事件.

Parameters:
stroke - 坐标轴轴线Stroke.

isTickLabelsVisible

public boolean isTickLabelsVisible()
返回坐标轴刻度值是否显示.

Returns:
The flag.

setTickLabelsVisible

public void setTickLabelsVisible(boolean flag)
设置坐标轴刻度值是否可见,并向所有监听器发送AxisChangeEvent事件.

Parameters:
flag - the flag.

getTickLabelFont

public java.awt.Font getTickLabelFont()
返回坐标轴刻度的字体.

Returns:
坐标轴刻度的字体 (不为null).

setTickLabelFont

public void setTickLabelFont(java.awt.Font font)
设置坐标轴刻度值的字体,并向所有监听器发送AxisChangeEvent事件.

Parameters:
font - 坐标轴刻度值的字体 (不可为null).

getTickLabelPaint

public java.awt.Paint getTickLabelPaint()
返回坐标轴刻度值的Paint.

Returns:
坐标轴刻度值的Paint (不为null).

setTickLabelPaint

public void setTickLabelPaint(java.awt.Paint paint)
设置坐标轴刻度值的Paint,并向所有监听器发送AxisChangeEvent事件.

Parameters:
paint - 坐标轴刻度值的Paint.

getTickLabelPaint

public java.awt.Paint getTickLabelPaint(java.lang.Object tickLabel)
返回坐标轴刻度值的Paint.

Parameters:
tickLabel - Object 坐标轴刻度值标签 (可为null).
Returns:
坐标轴刻度值的Paint.

setTickLabelPaint

public void setTickLabelPaint(java.lang.Object tickLabel,
                              java.awt.Paint paint)
给坐标轴刻度值标签设置Paint,并向所有监听器发送AxisChangeEvent事件.

Parameters:
tickLabel - Object 坐标轴刻度值标签 (不可为null).
paint - Paint Paint对象 (可为null).

getTickLabelInsets

public RectangleInsets getTickLabelInsets()
返回坐标轴刻度值的空白.

Returns:
坐标轴刻度值的空白 (不为null).

setTickLabelInsets

public void setTickLabelInsets(RectangleInsets insets)
设置坐标轴刻度值的空白,并向所有监听器发送AxisChangeEvent事件.

Parameters:
insets - 坐标轴刻度值的空白 (不可为null).

isTickMarkVisible

public boolean isTickMarkVisible()
返回刻度值是否可见.

Returns:
是否可见的布尔值.

setTickMarkVisible

public void setTickMarkVisible(boolean flag)
设置坐标轴刻度值是否可见,并向所有监听器发送AxisChangeEvent事件.

Parameters:
flag - the flag.

getTickMarkInsideLength

public float getTickMarkInsideLength()
返回坐标轴刻度值在数据区内部的长度.

Returns:
长度.

setTickMarkInsideLength

public void setTickMarkInsideLength(float length)
设置坐标轴刻度在数据区内部的长度,并向所有监听器发送AxisChangeEvent事件.

Parameters:
length - 新的长度.

getTickMarkOutsideLength

public float getTickMarkOutsideLength()
返回坐标轴刻度值在数据区外部的长度.

Returns:
长度.

setTickMarkOutsideLength

public void setTickMarkOutsideLength(float length)
设置坐标轴刻度在数据区外部的长度,并向所有监听器发送AxisChangeEvent事件.

Parameters:
length - 新的长度.

getTickMarkStroke

public java.awt.Stroke getTickMarkStroke()
返回坐标轴刻度的Stroke.

Returns:
坐标轴刻度的Stroke (不为null).

setTickMarkStroke

public void setTickMarkStroke(java.awt.Stroke stroke)
设置坐标轴刻度的Stroke,并向所有监听器发送AxisChangeEvent事件.

Parameters:
stroke - 坐标轴刻度的Stroke (不可为null).

getTickMarkPaint

public java.awt.Paint getTickMarkPaint()
返回坐标轴刻度的Paint.

Returns:
坐标轴刻度的Paint (不为null).

setTickMarkPaint

public void setTickMarkPaint(java.awt.Paint paint)
设置坐标轴刻度的Paint,并向所有监听器发送AxisChangeEvent事件.

Parameters:
paint - 坐标轴刻度的Paint

isGridLineVisible

public boolean isGridLineVisible()
返回是否显示网格线.

Returns:
boolean 布尔值.

setGridLineVisible

public void setGridLineVisible(boolean flag)
设置是否显示网格线,并向所有监听器发送AxisChangeEvent事件.

Parameters:
flag - boolean 布尔值.

addChangeListener

public void addChangeListener(IAxisChangeListener listener)
增加一个监听器.

Parameters:
listener - 监听器对象.

getDataset

public IMatrixDataset getDataset()
返回数据集.

Returns:
IMatrixDataset

setDataset

public void setDataset(IMatrixDataset dataset)
设置数据集,并向所有监听器发送AxisChangeEvent事件.

Parameters:
dataset - IMatrixDataset 数据集IMatrixDataset对象 (不可为null).

getRowKeyFormatter

public IFormatter getRowKeyFormatter()
返回用于格式化数据集中的rowKey值.

Returns:
IFormatter

setRowKeyFormatter

public void setRowKeyFormatter(IFormatter rowKeyFormatter)
设置用于格式化数据集中的rowKey值,并向所有监听器发送AxisChangeEvent事件.

Parameters:
rowKeyFormatter - IFormatter IFormatter对象.

getColKeyFormatter

public IFormatter getColKeyFormatter()
返回用于格式化数据集中的colKey值.

Returns:
IFormatter

setColKeyFormatter

public void setColKeyFormatter(IFormatter colKeyFormatter)
设置用于格式化数据集中的colKey值,并向所有监听器发送AxisChangeEvent事件.

Parameters:
colKeyFormatter - IFormatter IFormatter对象.

getDataFormatter

public IFormatter getDataFormatter()
返回用于格式化数据集中的数据值.

Returns:
IFormatter

setDataFormatter

public void setDataFormatter(IFormatter dataFormatter)
设置用于格式化数据集中的数据值,并向所有监听器发送AxisChangeEvent事件.

Parameters:
dataFormatter - IFormatter IFormatter对象.

getTickLabelAngle

public double getTickLabelAngle()
返回坐标轴刻度值旋转的弧度.

Returns:
double 坐标轴刻度值旋转的弧度.

setTickLabelAngle

public void setTickLabelAngle(double tickLabelAngle)
* 设置坐标轴刻度值旋转的弧度,并向所有监听器发送AxisChangeEvent事件.

Parameters:
tickLabelAngle - double 坐标轴刻度值旋转的弧度.

setTickLabelHorizontalAlign

public void setTickLabelHorizontalAlign(HorizontalAlignment horizontalAlign)
设置刻度值水平对齐方式,并向所有监听器发送AxisChangeEvent事件.

Parameters:
horizontalAlign - HorizontalAlignment 刻度值水平对齐方式 (不可为null).

getTickLabelHorizontalAlign

public HorizontalAlignment getTickLabelHorizontalAlign()
返回刻度值的水平对齐方式.

Returns:
HorizontalAlignment 刻度值水平对齐方式.

setTickLabelVerticalAlign

public void setTickLabelVerticalAlign(VerticalAlignment verticalAlign)
设置刻度值垂直对齐方式,并向所有监听器发送AxisChangeEvent事件.

Parameters:
verticalAlign - VerticalAlignment 刻度值垂直对齐方式 (不可为null).

getTickLabelVerticalAlign

public VerticalAlignment getTickLabelVerticalAlign()
返回刻度值的垂直对齐方式.

Returns:
VerticalAlignment 刻度值垂直对齐方式.

setAxisLabelHorizontalAlign

public void setAxisLabelHorizontalAlign(HorizontalAlignment horizontalAlign)
设置标签水平对齐方式,并向所有监听器发送AxisChangeEvent事件.

Parameters:
horizontalAlign - HorizontalAlignment 标签水平对齐方式 (不可为null).

getAxisLabelHorizontalAlign

public HorizontalAlignment getAxisLabelHorizontalAlign()
返回标签的水平对齐方式.

Returns:
HorizontalAlignment 标签水平对齐方式.

setAutoSelectTickLabelAlign

public void setAutoSelectTickLabelAlign(boolean autoSelectTickLabelAlign)
设置是否自动选择标签的对齐方式.

Parameters:
autoSelectTickLabelAlign - boolean boolean值.

isAutoSelectTickLabelAlign

public boolean isAutoSelectTickLabelAlign()
设置是否自动选择标签的对齐方式.

Returns:
boolean boolean值.

getMaximumCategoryLabelWidthRatio

public float getMaximumCategoryLabelWidthRatio()
返回坐标轴标签部分占整个图形区域宽度或长度的最大百分比.

Returns:
百分比.

setMaximumCategoryLabelWidthRatio

public void setMaximumCategoryLabelWidthRatio(float ratio)
设置坐标轴标签部分占整个图形区域宽度或长度的最大百分比, 并向所有监听器发送AxisChangeEvent事件.

Parameters:
ratio - 百分比.

getTickLabelFont

public java.awt.Font getTickLabelFont(java.lang.Object tickLabel)
返回坐标轴刻度的字体.

Parameters:
tickLabel - 坐标轴刻度值标签 (可为null).
Returns:
坐标轴刻度的字体 (不为null).

setTickLabelFont

public void setTickLabelFont(java.lang.Object tickLabel,
                             java.awt.Font font)
给坐标轴刻度值标签设置字体,并向所有监听器发送AxisChangeEvent事件.

Parameters:
tickLabel - Object 坐标轴刻度值标签 (不可为null).
font - Font 字体对象 (可为null).

getAxisLabelType

public AxisLabelType getAxisLabelType()
返回坐标轴标签类型.

Returns:
AxisLabelType 坐标轴标签类型 (不为null).

setAxisLabelType

public void setAxisLabelType(AxisLabelType axisLabelType)
设置坐标轴标签类型,并向所有监听器发送AxisChangeEvent事件.

Parameters:
axisLabelType - AxisLabelType 坐标轴标签类型 (不为null).

getFixedAxisSpace

public double getFixedAxisSpace()
返回固定的坐标轴绘制宽度或高度.

Specified by:
getFixedAxisSpace in interface IAxis
Returns:
double 固定的坐标轴绘制宽度或高度 (可为null).

setFixedAxisSpace

public void setFixedAxisSpace(double space)
设置固定的坐标轴绘制宽度或高度,并向所有监听器发送 AxisChangeEvent事件.

Parameters:
space - double 固定的坐标轴绘制区域 (可为null).

isDrawEmptyLabelTickMark

public boolean isDrawEmptyLabelTickMark()
返回是否绘制空标签的刻度线.

Returns:
boolean 布尔值.

setDrawEmptyLabelTickMark

public void setDrawEmptyLabelTickMark(boolean flag)
设置是否绘制空标签的刻度线,并向所有监听器发送 AxisChangeEvent事件.

Parameters:
flag - boolean 布尔值.

calculateAxisSpace

public double calculateAxisSpace(java.awt.Graphics2D g2,
                                 java.awt.geom.Rectangle2D plotArea,
                                 java.awt.geom.Rectangle2D maxAxisArea,
                                 RectangleEdge edge)
计算绘制坐标轴所需要的宽度或高度.

Specified by:
calculateAxisSpace in interface IAxis
Parameters:
g2 - Graphics2D 图形设备(打印机或屏幕) (不可为null).
plotArea - Rectangle2D 图表的plot区域.
maxAxisArea - Rectangle2D 坐标轴的最大区域,肯定小于plotArea.
edge - RectangleEdge 坐标轴的位置.
Returns:
double 宽度或高度.

getTickLabelLines

protected int getTickLabelLines()
返回坐标轴刻度值的行数.

Returns:
int 行数.

getFormatedTickLabels

protected abstract java.lang.String[] getFormatedTickLabels(java.awt.Graphics2D g2,
                                                            java.awt.geom.Rectangle2D maxAxisArea,
                                                            RectangleEdge edge)
返回格式化后的在坐标轴上显示的刻度值.

Parameters:
g2 - Graphics2D 图形设备(打印机或屏幕) (不可为null).
maxAxisArea - Rectangle2D 坐标轴的最大区域,肯定小于plotArea (不可为null).
edge - RectangleEdge 坐标轴的位置 (不可为null).
Returns:
String[] 刻度值数组.

draw

public double draw(java.awt.Graphics2D g2,
                   java.awt.geom.Rectangle2D plotArea,
                   java.awt.geom.Rectangle2D axisArea,
                   RectangleEdge edge,
                   AxisShapeCollection shapeCollection,
                   boolean alignEdge)
在图表的plot区域(plotArea)绘制X轴或Y轴.图表中的所有图形存放在shapeCollection集合中.

Specified by:
draw in interface IAxis
Parameters:
g2 - Graphics2D 图形设备(打印机或屏幕) (不可为null).
plotArea - Rectangle2D 图表的plot区域.
axisArea - Rectangle2D 剩余的空白区域.
edge - RectangleEdge 坐标轴的位置.
shapeCollection - AxisShapeCollection 坐标轴图形集合.
alignEdge - boolean 本标志控制如果实际绘制区域小于坐标轴区域,是否自动靠边界.
Returns:
double 轴实际绘制的宽度或高度.

dawAxisLabel

protected double dawAxisLabel(java.awt.Graphics2D g2,
                              java.awt.geom.Rectangle2D axisArea,
                              RectangleEdge edge,
                              AxisShapeCollection shapeCollection,
                              double cursor)
绘制坐标轴标签.

Parameters:
g2 - Graphics2D 图形设备(打印机或屏幕) (不可为null).
axisArea - Rectangle2D 剩余的空白区域.
edge - RectangleEdge 坐标轴的位置.
shapeCollection - AxisShapeCollection 坐标轴图形集合.
cursor - 光标的位置.
Returns:
double 绘制完坐标轴标签后光标的位置.

calculateLabelBound

protected java.awt.geom.Rectangle2D calculateLabelBound(java.awt.Graphics2D g2,
                                                        double labelMaxWidth,
                                                        double labelMaxHeight,
                                                        double labelAngle,
                                                        RectangleEdge edge,
                                                        java.lang.String[] seriesLabel,
                                                        java.awt.Font labelFont,
                                                        RectangleInsets inset)
计算包含标签的矩形.

Parameters:
g2 - Graphics2D 图形设备(打印机或屏幕) (不可为null).
labelMaxWidth - double 每个标签所占的最大宽度.
labelMaxHeight - double 每个标签所占的最大高度.
labelAngle - 标签的偏转角度.
edge - RectangleEdge 坐标轴的位置.
seriesLabel - String[] 一个系列的标签值(例如坐标轴刻度值),用于缩小标签的外边界.
labelFont - Font 绘制标签的字体.
inset - 标签的空白.
Returns:
Rectangle2D 刻度值的矩形边界.

getTickLabelRotateBound

protected java.awt.geom.Rectangle2D getTickLabelRotateBound(java.awt.geom.Rectangle2D rect,
                                                            double angle)
计算坐标轴刻度值的外边界旋转后的边界.

Parameters:
rect - Rectangle2D 坐标轴刻度值的外边界.
angle - double 标签旋转的角度.
Returns:
Rectangle2D 旋转后的边界.

drawTickMark

protected abstract double drawTickMark(java.awt.Graphics2D g2,
                                       java.awt.geom.Rectangle2D axisArea,
                                       RectangleEdge edge,
                                       AxisShapeCollection shapeCollection,
                                       double cursor)
绘制坐标轴上的刻度.

Parameters:
g2 - Graphics2D 图形设备(打印机或屏幕) (不可为null).
axisArea - Rectangle2D 剩余的空白区域.
edge - RectangleEdge 坐标轴的位置.
shapeCollection - AxisShapeCollection 坐标轴图形集合.
cursor - 光标的位置.
Returns:
double 绘制完坐标刻度光标的位置.

drawTickLabel

protected abstract double drawTickLabel(java.awt.Graphics2D g2,
                                        java.awt.geom.Rectangle2D plotArea,
                                        java.awt.geom.Rectangle2D axisArea,
                                        RectangleEdge edge,
                                        AxisShapeCollection shapeCollection,
                                        double cursor)
绘制坐标轴上的刻度值的标签.

Parameters:
g2 - Graphics2D 图形设备(打印机或屏幕) (不可为null).
plotArea - Rectangle2D 图表的plot区域.
axisArea - Rectangle2D 剩余的空白区域.
edge - RectangleEdge 坐标轴的位置.
shapeCollection - AxisShapeCollection 坐标轴图形集合.
cursor - 光标的位置.
Returns:
double 绘制完坐标轴刻度值后光标的位置.

drawAxisLine

protected double drawAxisLine(java.awt.geom.Rectangle2D axisArea,
                              RectangleEdge edge,
                              AxisShapeCollection shapeCollection)
绘制坐标轴线

Parameters:
axisArea - Rectangle2D 剩余的空白区域 (不可为null).
edge - RectangleEdge 坐标轴的位置 (不可为null).
shapeCollection - AxisShapeCollection 坐标轴图形集合 (不可为null).
Returns:
double 当前光标位置.

drawAxis3DLine

protected double drawAxis3DLine(IEffect3D effect3D,
                                java.awt.geom.Rectangle2D axisArea,
                                RectangleEdge edge,
                                AxisShapeCollection shapeCollection)
绘制坐标轴线

Parameters:
effect3D - IEffect3D 3D效果的偏移量.
axisArea - Rectangle2D 剩余的空白区域 (不可为null).
edge - RectangleEdge 坐标轴的位置 (不可为null).
shapeCollection - AxisShapeCollection 坐标轴图形集合 (不可为null).
Returns:
double 当前光标位置.

createAxisLabelChartShape

protected IChartShape createAxisLabelChartShape(java.awt.geom.Rectangle2D axisLabelDrawRect)
创建一个RectangleTextChartShape对象.

Parameters:
axisLabelDrawRect - Rectangle2D 坐标轴标签的包围矩形.
Returns:
IChartShape 图形对象.

getLowerMargin

public double getLowerMargin()
返回坐标轴开始端的空白区域,单位为百分比.

Returns:
坐标轴开始端空白,单位为百分比.

setLowerMargin

public void setLowerMargin(double margin)
设置坐标轴开始端的空白区域(单位为百分比),并向所有监听器发送AxisChangeEvent事件.

Parameters:
margin - 坐标轴开始端的空白区域(单位为百分比),例如:0.05表示5%

getUpperMargin

public double getUpperMargin()
返回坐标轴结束端的空白区域,单位为百分比.

Returns:
坐标轴结束端空白,单位为百分比.

setUpperMargin

public void setUpperMargin(double margin)
设置坐标轴结束端的空白区域(单位为百分比),并向所有监听器发送AxisChangeEvent事件.

Parameters:
margin - 坐标轴结束端的空白区域(单位为百分比),例如:0.05表示5%

drawGridLine

public abstract void drawGridLine(java.awt.Graphics2D g2,
                                  java.awt.geom.Rectangle2D dataArea,
                                  RectangleEdge axisEdge,
                                  RenderShapeCollection shapeCollection,
                                  java.awt.Stroke stroke,
                                  java.awt.Paint paint)
绘制网格线,须在IAxis.draw()方法之后调用.

Parameters:
g2 - Graphics2D 图形设备(打印机或屏幕) (不可为null).
dataArea - Rectangle2D 图表的data区域(数据区) (不可为null).
axisEdge - RectangleEdge 坐标轴的位置 (不可为null).
shapeCollection - RenderShapeCollection 坐标轴图形集合 (不可为null).
stroke - Stroke 网格线stroke (不可为null).
paint - Paint 网格线paint (不可为null).

removeChangeListener

public void removeChangeListener(IAxisChangeListener listener)
删除一个监听器.

Parameters:
listener - 要删除的监听器对象.

removeAllChangeListener

public void removeAllChangeListener()
删除所有监听器.


hasListener

public boolean hasListener(java.util.EventListener listener)
判断是否有监听器对象listener.

Parameters:
listener - the listener.
Returns:
A boolean.

fireAxisChanged

protected void fireAxisChanged()
通过所有监听器坐标轴发生了变化.


notifyListeners

protected void notifyListeners(AxisChangeEvent event)
通知所有的监听器对象,坐轴标发生了变化

Parameters:
event - information about the change to the axis.

clone

public java.lang.Object clone()
                       throws java.lang.CloneNotSupportedException
覆盖clone方法.

Overrides:
clone in class java.lang.Object
Returns:
A clone.
Throws:
java.lang.CloneNotSupportedException - if some component of the axis does not support cloning.

hashCode

public int hashCode()
覆盖hashCode方法.

Overrides:
hashCode in class java.lang.Object
Returns:
hashcode值.

equals

public boolean equals(java.lang.Object obj)
测试两个对象是否相等.

Overrides:
equals in class java.lang.Object
Parameters:
obj - 要比较的对象
Returns:
true or false.