com.ijchart.xychart.shape
Class SectorChartShape

java.lang.Object
  extended by com.ijchart.xychart.shape.AbstractChartShape
      extended by com.ijchart.xychart.shape.AbstractTextChartShape
          extended by com.ijchart.xychart.shape.AbstractRectangleTextChartShape
              extended by com.ijchart.xychart.shape.SectorChartShape
All Implemented Interfaces:
IChartShapeChangeListener, IChartShape, java.io.Serializable, java.lang.Cloneable, java.util.EventListener
Direct Known Subclasses:
RingChartShape

public class SectorChartShape
extends AbstractRectangleTextChartShape
implements java.lang.Cloneable, java.io.Serializable

Title: IJChart

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

绘制扇形图.

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_ARC_BORDER_PAINT
          绘制边框的paint.
static double DEFAULT_DEPTH_3D
          缺省的绘制3D效果的深度.
static boolean DEFAULT_DRAW_RADIUS
          缺省是否绘制半径线.
static java.awt.Paint DEFAULT_LABEL_BACKGROUND_PAINT
          缺省的标签的背景paint.
static java.awt.Paint DEFAULT_LABEL_OUTLINE_PAINT
          绘制标签的边框paint.
static java.awt.Stroke DEFAULT_LABEL_OUTLINE_STROKE
          缺省的绘制边框的stroke.
static RectangleInsets DEFAULT_LABEL_PADDING
          缺省标签的补白.
static java.awt.Paint DEFAULT_LABEL_SHADOW_PAINT
          缺省的绘制标签阴影的paint.
static double DEFAULT_LABEL_SHADOW_X_OFFSET
          缺省的标签在x方向的阴影长度.
static double DEFAULT_LABEL_SHADOW_Y_OFFSET
          缺省的标签在y方向的阴影长度.
static boolean DEFAULT_SECTOR_IS_3D
          缺省是否是3D类型的扇形图.
static java.awt.Paint DEFAULT_SECTOR_SHADOW_PAINT
          缺省的绘制扇形图形的paint.
static double DEFAULT_SECTOR_SHADOW_X_OFFSET
          缺省的扇形在x方向的阴影长度.
static double DEFAULT_SECTOR_SHADOW_Y_OFFSET
          缺省的扇形在y方向的阴影长度.
 
Fields inherited from class com.ijchart.xychart.shape.AbstractRectangleTextChartShape
DEFAULT_DRAW_AUTO_WRAP, DEFAULT_FORCE_INSIDE_TEXT_NO_WRAP, DEFAULT_FORCE_SHOW_ALL, DEFAULT_TEXT_MAX_SHOW_LINE
 
Fields inherited from class com.ijchart.xychart.shape.AbstractTextChartShape
DEFAULT_TEXT_DIRECTION, DEFAULT_TEXT_HORIZONTAL_ALIGNMENT, DEFAULT_TEXT_POSITION, DEFAULT_TEXT_VERTICAL_ALIGNMENT
 
Fields inherited from class com.ijchart.xychart.shape.AbstractChartShape
DEFAULT_DRAW_TYPE, DEFAULT_SHAPE_ID, DEFAULT_VISIBLE, transformedShape
 
Fields inherited from interface com.ijchart.xychart.shape.IChartShape
DEFAULT_BORDER_PAINT, DEFAULT_BORDER_STROKE, DEFAULT_CONTENT_PAINT, DEFAULT_DRAW_BORDER, DEFAULT_FILL_ALPHA, DEFAULT_FILL_PAINT, DEFAULT_FILL_SHAPE, DEFAULT_GRADIENT_PAINT_TRANSFORM_TYPE, DEFAULT_MARGIN, DEFAULT_SELECT_FILL_PAINT, DEFAULT_SELECT_RECT_ALPHA, DEFAULT_SELECT_RECT_WIDTH, DEFAULT_SELECTED, DEFAULT_TEXT_FONT, DEFAULT_TOOLTIP_SHAPE_WIDTH, HOTSPOT_TYPE_CIRCLE, HOTSPOT_TYPE_POLYGON, HOTSPOT_TYPE_RECTANGLE
 
Constructor Summary
SectorChartShape(java.awt.geom.Arc2D arc, java.awt.geom.Rectangle2D drawArea, java.lang.String text)
          构造器.
SectorChartShape(java.awt.geom.Arc2D arc, java.awt.geom.Rectangle2D drawArea, java.lang.String text, boolean sector3D)
          构造器.
 
Method Summary
protected  void calculateTransformedShape()
          计算变换后的图形.
 java.lang.Object clone()
          返回克隆的对象.
 void draw(java.awt.Graphics2D g2)
          在图形设备(如屏幕或打印机)上绘制此图形.绘制时不考虑shape的位置坐标.
 boolean equals(java.lang.Object obj)
          测试两个对象是否相等.
 java.awt.geom.Arc2D getArc()
          返回扇形图形.
 double getDepth3D()
          返回绘制3D效果的深度.
protected  java.awt.Shape getHotspotShape()
          返回热点图形.
 java.awt.Paint getLabelBackgroundPaint()
          返回标签的背景颜色.
 java.awt.Paint getLabelOutlinePaint()
          返回绘制标签的边框paint.
 java.awt.Stroke getLabelOutlineStroke()
          返回绘制边框的stroke.
 RectangleInsets getLabelPadding()
          返回标签的补白.
 java.awt.Paint getLabelShadowPaint()
          返回绘制扇形图形的paint.
 double getLabelShadowXOffset()
          返回标签在x方向的阴影长度.
 double getLabelShadowYOffset()
          返回标签在x方向的阴影长度.
 java.awt.geom.Point2D getLockPoint()
          返回鼠标点击时锁定图形的点.
protected  java.awt.geom.Point2D[] getPointsOfArc(java.awt.geom.Arc2D arc)
          取得Arc上的三个点,在对Arc: center, left, right.
 java.awt.Paint getSectorShadowPaint()
          返回绘制标签阴影的paint.
 double getSectorShadowXOffset()
          返回扇形在x方向的阴影长度.
 double getSectorShadowYOffset()
          返回扇形在x方向的阴影长度.
 ShapeType getShapeType()
          描述本图形的类型.
 java.awt.geom.Point2D getTopLeftPoint()
          返回图形左上角的坐标.
 int hashCode()
          计算对象的hashcode值.
 boolean isDrawRadius()
          返回是否绘制半径线.
 boolean isSector3D()
          返回是否是3D类型的扇形图.
 void setArc(java.awt.geom.Arc2D arc)
          设置扇形图形,并向所有监听器发送ChartShapeChangeEvent事件.
 void setDepth3D(double depth3D)
          设置绘制3D效果的深度,并向所有监听器发送 ChartShapeChangeEvent事件.
 void setDrawRadius(boolean flag)
          设置是否绘制半径线,并向所有监听器发送 ChartShapeChangeEvent事件.
 void setLabelBackgroundPaint(java.awt.Paint paint)
          设置标签的背景颜色,并向所有监听器发送 ChartShapeChangeEvent事件.
 void setLabelOutlinePaint(java.awt.Paint paint)
          设置绘制标签的边框paint,并向所有监听器发送 ChartShapeChangeEvent事件.
 void setLabelOutlineStroke(java.awt.Stroke stroke)
          设置绘制边框的stroke,并向所有监听器发送 ChartShapeChangeEvent事件.
 void setLabelPadding(RectangleInsets padding)
          设置标签的补白,并向所有监听器发送 ChartShapeChangeEvent事件.
 void setLabelShadowPaint(java.awt.Paint paint)
          设置绘制扇形图形的paint,并向所有监听器发送 ChartShapeChangeEvent事件.
 void setLabelShadowXOffset(double offset)
          设置标签在x方向的阴影长度,并向所有监听器发送 ChartShapeChangeEvent事件.
 void setLabelShadowYOffset(double offset)
          设置标签在y方向的阴影长度,并向所有监听器发送 ChartShapeChangeEvent事件.
 void setSector3D(boolean flag)
          设置是否是3D类型的扇形图,并向所有监听器发送 ChartShapeChangeEvent事件.
 void setSectorShadowPaint(java.awt.Paint paint)
          设置绘制标签阴影的paint,并向所有监听器发送 ChartShapeChangeEvent事件.
 void setSectorShadowXOffset(double offset)
          设置扇形在x方向的阴影长度,并向所有监听器发送 ChartShapeChangeEvent事件.
 void setSectorShadowYOffset(double offset)
          设置扇形在y方向的阴影长度,并向所有监听器发送 ChartShapeChangeEvent事件.
 void translate(double tx, double ty)
          相对移动本图形,其中X轴方向偏移tx,Y轴方向偏移ty,并向所有监听器发送 ChartShapeChangeEvent事件.

See Also:
Constant Field Values

DEFAULT_ARC_BORDER_PAINT

public static final java.awt.Paint DEFAULT_ARC_BORDER_PAINT
绘制边框的paint.


DEFAULT_LABEL_BACKGROUND_PAINT

public static final java.awt.Paint DEFAULT_LABEL_BACKGROUND_PAINT
缺省的标签的背景paint.


DEFAULT_LABEL_OUTLINE_PAINT

public static final java.awt.Paint DEFAULT_LABEL_OUTLINE_PAINT
绘制标签的边框paint.


DEFAULT_LABEL_OUTLINE_STROKE

public static final java.awt.Stroke DEFAULT_LABEL_OUTLINE_STROKE
缺省的绘制边框的stroke.


DEFAULT_LABEL_SHADOW_PAINT

public static final java.awt.Paint DEFAULT_LABEL_SHADOW_PAINT
缺省的绘制标签阴影的paint.


DEFAULT_LABEL_PADDING

public static final RectangleInsets DEFAULT_LABEL_PADDING
缺省标签的补白.


DEFAULT_LABEL_SHADOW_X_OFFSET

public static final double DEFAULT_LABEL_SHADOW_X_OFFSET
缺省的标签在x方向的阴影长度.

See Also:
Constant Field Values

DEFAULT_LABEL_SHADOW_Y_OFFSET

public static final double DEFAULT_LABEL_SHADOW_Y_OFFSET
缺省的标签在y方向的阴影长度.

See Also:
Constant Field Values

DEFAULT_SECTOR_SHADOW_PAINT

public static final java.awt.Paint DEFAULT_SECTOR_SHADOW_PAINT
缺省的绘制扇形图形的paint.


DEFAULT_SECTOR_SHADOW_X_OFFSET

public static final double DEFAULT_SECTOR_SHADOW_X_OFFSET
缺省的扇形在x方向的阴影长度.

See Also:
Constant Field Values

DEFAULT_SECTOR_SHADOW_Y_OFFSET

public static final double DEFAULT_SECTOR_SHADOW_Y_OFFSET
缺省的扇形在y方向的阴影长度.

See Also:
Constant Field Values

DEFAULT_SECTOR_IS_3D

public static final boolean DEFAULT_SECTOR_IS_3D
缺省是否是3D类型的扇形图.

See Also:
Constant Field Values

DEFAULT_DEPTH_3D

public static final double DEFAULT_DEPTH_3D
缺省的绘制3D效果的深度.

See Also:
Constant Field Values
Constructor Detail

SectorChartShape

public SectorChartShape(java.awt.geom.Arc2D arc,
                        java.awt.geom.Rectangle2D drawArea,
                        java.lang.String text)
构造器.

Parameters:
arc - Arc2D 扇形图形 (不可为null).
drawArea - Rectangle2D 绘制区域 (不可为null).
text - String 要显示的文字 (可为null).

SectorChartShape

public SectorChartShape(java.awt.geom.Arc2D arc,
                        java.awt.geom.Rectangle2D drawArea,
                        java.lang.String text,
                        boolean sector3D)
构造器.

Parameters:
arc - Arc2D 扇形图形 (不可为null).
drawArea - Rectangle2D 绘制区域 (不可为null).
text - String 要显示的文字 (可为null).
sector3D - boolean 是否是3D类型的扇形图.
Method Detail

getArc

public java.awt.geom.Arc2D getArc()
返回扇形图形.

Returns:
Arc2D 扇形图形 (不为null).

setArc

public void setArc(java.awt.geom.Arc2D arc)
设置扇形图形,并向所有监听器发送ChartShapeChangeEvent事件.

Parameters:
arc - Arc2D 扇形图形 (不可为null).

isDrawRadius

public boolean isDrawRadius()
返回是否绘制半径线.

Returns:
boolean 布尔值.

setDrawRadius

public void setDrawRadius(boolean flag)
设置是否绘制半径线,并向所有监听器发送 ChartShapeChangeEvent事件.

Parameters:
flag - boolean 布尔值.

getLabelBackgroundPaint

public java.awt.Paint getLabelBackgroundPaint()
返回标签的背景颜色.

Returns:
Paint paint对象.

setLabelBackgroundPaint

public void setLabelBackgroundPaint(java.awt.Paint paint)
设置标签的背景颜色,并向所有监听器发送 ChartShapeChangeEvent事件.

Parameters:
paint - Paint paint对象 (可为null).

getLabelOutlinePaint

public java.awt.Paint getLabelOutlinePaint()
返回绘制标签的边框paint.

Returns:
Paint paint对象.

setLabelOutlinePaint

public void setLabelOutlinePaint(java.awt.Paint paint)
设置绘制标签的边框paint,并向所有监听器发送 ChartShapeChangeEvent事件.

Parameters:
paint - Paint paint对象 (可为null).

getLabelOutlineStroke

public java.awt.Stroke getLabelOutlineStroke()
返回绘制边框的stroke.

Returns:
Stroke stroke对象.

setLabelOutlineStroke

public void setLabelOutlineStroke(java.awt.Stroke stroke)
设置绘制边框的stroke,并向所有监听器发送 ChartShapeChangeEvent事件.

Parameters:
stroke - Stroke stroke对象 (可为null).

getLabelShadowPaint

public java.awt.Paint getLabelShadowPaint()
返回绘制扇形图形的paint.

Returns:
Paint paint对象 (可为null).

setLabelShadowPaint

public void setLabelShadowPaint(java.awt.Paint paint)
设置绘制扇形图形的paint,并向所有监听器发送 ChartShapeChangeEvent事件.

Parameters:
paint - Paint paint对象 (可为null).

getLabelPadding

public RectangleInsets getLabelPadding()
返回标签的补白.

Returns:
RectangleInsets 补白 (不为null).

setLabelPadding

public void setLabelPadding(RectangleInsets padding)
设置标签的补白,并向所有监听器发送 ChartShapeChangeEvent事件.

Parameters:
padding - RectangleInsets 补白 (不可为null).

getLabelShadowXOffset

public double getLabelShadowXOffset()
返回标签在x方向的阴影长度.

Returns:
double 偏移值.

setLabelShadowXOffset

public void setLabelShadowXOffset(double offset)
设置标签在x方向的阴影长度,并向所有监听器发送 ChartShapeChangeEvent事件.

Parameters:
offset - double 偏移值.

getLabelShadowYOffset

public double getLabelShadowYOffset()
返回标签在x方向的阴影长度.

Returns:
double 偏移值.

setLabelShadowYOffset

public void setLabelShadowYOffset(double offset)
设置标签在y方向的阴影长度,并向所有监听器发送 ChartShapeChangeEvent事件.

Parameters:
offset - double 偏移值.

getSectorShadowPaint

public java.awt.Paint getSectorShadowPaint()
返回绘制标签阴影的paint.

Returns:
Paint paint对象.

setSectorShadowPaint

public void setSectorShadowPaint(java.awt.Paint paint)
设置绘制标签阴影的paint,并向所有监听器发送 ChartShapeChangeEvent事件.

Parameters:
paint - Paint

getSectorShadowXOffset

public double getSectorShadowXOffset()
返回扇形在x方向的阴影长度.

Returns:
double 偏移值.

setSectorShadowXOffset

public void setSectorShadowXOffset(double offset)
设置扇形在x方向的阴影长度,并向所有监听器发送 ChartShapeChangeEvent事件.

Parameters:
offset - double 偏移值.

getSectorShadowYOffset

public double getSectorShadowYOffset()
返回扇形在x方向的阴影长度.

Returns:
double 偏移值.

setSectorShadowYOffset

public void setSectorShadowYOffset(double offset)
设置扇形在y方向的阴影长度,并向所有监听器发送 ChartShapeChangeEvent事件.

Parameters:
offset - double 偏移值.

isSector3D

public boolean isSector3D()
返回是否是3D类型的扇形图.

Returns:
boolean 布尔值.

setSector3D

public void setSector3D(boolean flag)
设置是否是3D类型的扇形图,并向所有监听器发送 ChartShapeChangeEvent事件.

Parameters:
flag - boolean 布尔值.

getDepth3D

public double getDepth3D()
返回绘制3D效果的深度.

Returns:
double 深度.

setDepth3D

public void setDepth3D(double depth3D)
设置绘制3D效果的深度,并向所有监听器发送 ChartShapeChangeEvent事件.

Parameters:
depth3D - double 深度.

draw

public void draw(java.awt.Graphics2D g2)
在图形设备(如屏幕或打印机)上绘制此图形.绘制时不考虑shape的位置坐标.

Specified by:
draw in interface IChartShape
Parameters:
g2 - Graphics2D 图形设备(如屏幕或打印机) (不可为null)

drawSelect

protected void drawSelect(java.awt.Graphics2D g2)
在图形设备(如屏幕或打印机)上绘制图形的选中部分,因为图形可能会有重叠,所以绘制图形时要先绘制完所有的图形后, 再调用此方法绘制选中部分.

Specified by:
drawSelect in class AbstractChartShape
Parameters:
g2 - Graphics2D 图形设备(如屏幕或打印机) (不可为null)

getLockPoint

public java.awt.geom.Point2D getLockPoint()
返回鼠标点击时锁定图形的点.

Specified by:
getLockPoint in interface IChartShape
Overrides:
getLockPoint in class AbstractRectangleTextChartShape
Returns:
Point2D 坐标值.

calculateTransformedShape

protected void calculateTransformedShape()
计算变换后的图形.

Specified by:
calculateTransformedShape in class AbstractChartShape

translate

public void translate(double tx,
                      double ty)
相对移动本图形,其中X轴方向偏移tx,Y轴方向偏移ty,并向所有监听器发送 ChartShapeChangeEvent事件.

Specified by:
translate in interface IChartShape
Overrides:
translate in class AbstractRectangleTextChartShape
Parameters:
tx - double 沿X轴方向的距离.
ty - double 沿Y轴方向的距离.

getTopLeftPoint

public java.awt.geom.Point2D getTopLeftPoint()
返回图形左上角的坐标.

Specified by:
getTopLeftPoint in interface IChartShape
Overrides:
getTopLeftPoint in class AbstractRectangleTextChartShape
Returns:
Point2D 坐标值.

getHotspotShape

protected java.awt.Shape getHotspotShape()
返回热点图形.

Specified by:
getHotspotShape in class AbstractChartShape
Returns:
Shape 热点图形 (可为null).

getShapeType

public ShapeType getShapeType()
描述本图形的类型.

Specified by:
getShapeType in interface IChartShape
Returns:
ShapeType ShapeType类定义的常量 (不可为null).

getPointsOfArc

protected java.awt.geom.Point2D[] getPointsOfArc(java.awt.geom.Arc2D arc)
取得Arc上的三个点,在对Arc: center, left, right.

Parameters:
arc - Arc2D
Returns:
Point2D[]

hashCode

public int hashCode()
计算对象的hashcode值.

Overrides:
hashCode in class AbstractRectangleTextChartShape
Returns:
int 对象的hashcode值.

equals

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

Overrides:
equals in class AbstractRectangleTextChartShape
Parameters:
obj - 要比较的对象
Returns:
相等返回true,否则返回false.

clone

public java.lang.Object clone()
                       throws java.lang.CloneNotSupportedException
返回克隆的对象.

Overrides:
clone in class AbstractRectangleTextChartShape
Returns:
object a clone of this instance.
Throws:
java.lang.CloneNotSupportedException - if the object's class does not support the Cloneable interface. Subclasses that override the clone method can also throw this exception to indicate that an instance cannot be cloned.