📄 pieplot.java
字号:
}
/**
* Sets the amount that a pie section should be exploded.
* <p>
* If you want to display a pie chart with one or more exploded sections, you first need
* to set the pie chart radius to something less than 100%. Then, consider a circle that
* represents a pie chart with the maximum radius (100%) and a smaller circle that is the
* actual pie chart (with radius x%). Now, the explode percent determines how far out
* towards the outer circle the pie section is shifted (exploded).
*
* @param section the section index.
* @param percent the amount to explode the section as a percentage.
*/
public void setExplodePercent(int section, double percent) {
// check argument...
int keyCount = 0;
Collection keys = getKeys();
if (keys != null) {
keyCount = keys.size();
}
if ((section < 0) || (section >= keyCount)) {
throw new IllegalArgumentException(
"PiePlot.setExplodePercent(int, double): section outside valid range.");
}
// store the value in an appropriate data structure...
if (this.explodePercentages != null) {
if (section < this.explodePercentages.length) {
explodePercentages[section] = percent;
}
else {
double[] newExplodePercentages = new double[section + 1];
for (int i = 0; i < this.explodePercentages.length; i++) {
newExplodePercentages[i] = this.explodePercentages[i];
}
this.explodePercentages = newExplodePercentages;
this.explodePercentages[section] = percent;
}
}
else {
explodePercentages = new double[keyCount];
explodePercentages[section] = percent;
}
}
/**
* Returns the section label type. Defined by the constants: NO_LABELS,
* NAME_LABELS, PERCENT_LABELS and NAME_AND_PERCENT_LABELS.
*
* @return the section label type.
*/
public int getSectionLabelType() {
return this.sectionLabelType;
}
/**
* Sets the section label type.
* <P>
* Valid types are defined by the following constants: NO_LABELS,
* NAME_LABELS, VALUE_LABELS, PERCENT_LABELS, NAME_AND_VALUE_LABELS,
* NAME_AND_PERCENT_LABELS, VALUE_AND_PERCENT_LABELS.
*
* @param type the type.
*/
public void setSectionLabelType(int type) {
// check the argument...
if ((type != NO_LABELS)
&& (type != NAME_LABELS)
&& (type != VALUE_LABELS)
&& (type != PERCENT_LABELS)
&& (type != NAME_AND_VALUE_LABELS)
&& (type != NAME_AND_PERCENT_LABELS)
&& (type != VALUE_AND_PERCENT_LABELS)) {
throw new IllegalArgumentException(
"PiePlot.setSectionLabelType(int): unrecognised type.");
}
// make the change...
if (sectionLabelType != type) {
this.sectionLabelType = type;
notifyListeners(new PlotChangeEvent(this));
}
}
/**
* Returns the section label font.
*
* @return the section label font.
*/
public Font getSectionLabelFont() {
return this.sectionLabelFont;
}
/**
* Sets the section label font.
* <P>
* Notifies registered listeners that the plot has been changed.
*
* @param font the new section label font.
*/
public void setSectionLabelFont(Font font) {
// check arguments...
if (font == null) {
throw new IllegalArgumentException(
"PiePlot.setSectionLabelFont(...): null font not allowed.");
}
// make the change...
if (!this.sectionLabelFont.equals(font)) {
this.sectionLabelFont = font;
notifyListeners(new PlotChangeEvent(this));
}
}
/**
* Returns the section label paint.
*
* @return the section label paint.
*/
public Paint getSectionLabelPaint() {
return this.sectionLabelPaint;
}
/**
* Sets the section label paint.
* <P>
* Notifies registered listeners that the plot has been changed.
*
* @param paint the new section label paint.
*/
public void setSectionLabelPaint(Paint paint) {
// check arguments...
if (paint == null) {
throw new IllegalArgumentException(
"PiePlot.setSectionLabelPaint(...): null paint not allowed.");
}
// make the change...
if (!this.sectionLabelPaint.equals(paint)) {
this.sectionLabelPaint = paint;
notifyListeners(new PlotChangeEvent(this));
}
}
/**
* Returns the section label gap, measured as a percentage of the radius.
*
* @return the section label gap, measured as a percentage of the radius.
*/
public double getSectionLabelGap() {
return this.sectionLabelGap;
}
/**
* Sets the section label gap percent.
*
* @param percent the gap.
*/
public void setSectionLabelGap(double percent) {
// check arguments...
if ((percent < 0.0) || (percent > MAX_SECTION_LABEL_GAP)) {
throw new IllegalArgumentException(
"PiePlot.setSectionLabelGapPercent(double): percentage outside valid range.");
}
// make the change...
if (this.sectionLabelGap != percent) {
this.sectionLabelGap = percent;
notifyListeners(new PlotChangeEvent(this));
}
}
/**
* Sets the format string for the value labels.
*
* @param format The format.
*/
public void setValueFormatString(String format) {
this.valueFormatter = new DecimalFormat(format);
}
/**
* Sets the format for the value labels.
*
* @param format the format.
*/
public void setValueFormat(NumberFormat format) {
if (format == null) {
return;
}
this.valueFormatter = format;
}
/**
* Sets the format string for the percent labels.
*
* @param format the format.
*/
public void setPercentFormatString(String format) {
this.percentFormatter = new DecimalFormat(format);
}
/**
* Sets the format for the value labels.
*
* @param format the format.
*/
public void setPercentFormat(NumberFormat format) {
if (format == null) {
return;
}
this.percentFormatter = format;
}
/**
* Returns the dataset for the plot, cast as a {@link PieDataset}.
* <P>
* Provided for convenience.
*
* @return the dataset for the plot, cast as a {@link PieDataset}.
*/
public PieDataset getPieDataset() {
return (PieDataset) getDataset();
}
/**
* Returns the show series labels flag.
*
* @return the show series label flag.
*/
public boolean getShowSeriesLabels () {
return (this.showSeriesLabels);
}
/**
* Sets the show series labels flag.
* <P>
* Notifies registered listeners that the plot has been changed.
*
* @param flag the new show series labels flag.
*/
public void setShowSeriesLabels(boolean flag) {
if (this.showSeriesLabels != flag) {
this.showSeriesLabels = flag;
notifyListeners(new PlotChangeEvent(this));
}
}
/**
* Returns the series label font.
*
* @return the series label font.
*/
public Font getSeriesLabelFont() {
return this.seriesLabelFont;
}
/**
* Sets the series label font.
* <P>
* Notifies registered listeners that the plot has been changed.
*
* @param font the new series label font.
*/
public void setSeriesLabelFont(Font font) {
// check arguments...
if (font == null) {
throw new IllegalArgumentException("PiePlot.setSeriesLabelFont(...): "
+ "null font not allowed.");
}
// make the change...
if (!this.seriesLabelFont.equals(font)) {
this.seriesLabelFont = font;
notifyListeners(new PlotChangeEvent(this));
}
}
/**
* Returns the series label paint.
*
* @return the series label paint.
*/
public Paint getSeriesLabelPaint() {
return this.seriesLabelPaint;
}
/**
* Sets the series label paint.
* <P>
* Notifies registered listeners that the plot has been changed.
*
* @param paint the new series label paint.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -