📄 xyplot.java
字号:
*/
public AxisLocation getRangeAxisLocation() {
return this.rangeAxisLocation;
}
/**
* Sets the location of the range axis.
*
* @param location the location.
*/
public void setRangeAxisLocation(AxisLocation location) {
setRangeAxisLocation(location, true);
}
/**
* Sets the location of the range axis.
*
* @param location the location.
* @param notify a flag that controls whether listeners are notified.
*/
public void setRangeAxisLocation(AxisLocation location, boolean notify) {
if (location != this.rangeAxisLocation) {
this.rangeAxisLocation = location;
if (notify) {
notifyListeners(new PlotChangeEvent(this));
}
}
}
/**
* Returns the edge for the range axis.
*
* @return The range axis edge.
*/
public RectangleEdge getRangeAxisEdge() {
return Plot.resolveRangeAxisLocation(this.rangeAxisLocation, this.orientation);
}
/**
* Returns a secondary range axis.
*
* @param index the axis index.
*
* @return The axis (<code>null</code> possible).
*/
public ValueAxis getSecondaryRangeAxis(int index) {
ValueAxis result = null;
if (index < this.secondaryRangeAxes.size()) {
result = (ValueAxis) this.secondaryRangeAxes.get(index);
}
if (result == null) {
Plot parent = getParent();
if (parent instanceof XYPlot) {
XYPlot xy = (XYPlot) parent;
result = xy.getSecondaryRangeAxis(index);
}
}
return result;
}
/**
* Sets a secondary range axis.
*
* @param index the axis index.
* @param axis the axis.
*/
public void setSecondaryRangeAxis(int index, ValueAxis axis) {
ValueAxis existing = getSecondaryRangeAxis(index);
if (existing != null) {
existing.removeChangeListener(this);
}
if (axis != null) {
try {
axis.setPlot(this);
}
catch (PlotNotCompatibleException e) {
}
}
this.secondaryRangeAxes.set(index, axis);
if (axis != null) {
axis.configure();
axis.addChangeListener(this);
}
notifyListeners(new PlotChangeEvent(this));
}
/**
* Clears the secondary range axes from the plot.
*/
public void clearSecondaryRangeAxes() {
for (int i = 0; i < this.secondaryRangeAxes.size(); i++) {
ValueAxis axis = (ValueAxis) this.secondaryRangeAxes.get(i);
if (axis != null) {
axis.removeChangeListener(this);
}
}
this.secondaryRangeAxes.clear();
notifyListeners(new PlotChangeEvent(this));
}
/**
* Configures the secondary range axes.
*/
public void configureSecondaryRangeAxes() {
for (int i = 0; i < this.secondaryRangeAxes.size(); i++) {
ValueAxis axis = (ValueAxis) this.secondaryRangeAxes.get(i);
if (axis != null) {
axis.configure();
}
}
}
/**
* Returns the location for a secondary range axis.
*
* @param index the axis index.
*
* @return The location.
*/
public AxisLocation getSecondaryRangeAxisLocation(int index) {
AxisLocation result = null;
if (index < this.secondaryRangeAxisLocations.size()) {
result = (AxisLocation) this.secondaryRangeAxisLocations.get(index);
}
if (result == null) {
Plot parent = getParent();
if (parent instanceof XYPlot) {
XYPlot xy = (XYPlot) parent;
result = xy.getSecondaryRangeAxisLocation(index);
}
}
return result;
}
/**
* Sets the location for a secondary range axis.
*
* @param index the axis index.
* @param location the location.
*/
public void setSecondaryRangeAxisLocation(int index, AxisLocation location) {
this.secondaryRangeAxisLocations.set(index, location);
notifyListeners(new PlotChangeEvent(this));
}
/**
* Returns the edge for a secondary range axis.
*
* @param index the axis index.
*
* @return The edge.
*/
public RectangleEdge getSecondaryRangeAxisEdge(int index) {
AxisLocation location = getSecondaryRangeAxisLocation(index);
RectangleEdge result = Plot.resolveRangeAxisLocation(location, this.orientation);
if (result == null) {
result = RectangleEdge.opposite(getRangeAxisEdge());
}
return result;
}
/**
* Returns the primary dataset for the plot.
*
* @return The primary dataset (possibly <code>null</code>).
*/
public XYDataset getDataset() {
return this.dataset;
}
/**
* Sets the dataset for the plot, replacing the existing dataset if there is one.
*
* @param dataset the dataset (<code>null</code> permitted).
*/
public void setDataset(XYDataset dataset) {
// if there is an existing dataset, remove the plot from the list of change listeners...
XYDataset existing = this.dataset;
if (existing != null) {
existing.removeChangeListener(this);
}
// set the new dataset, and register the chart as a change listener...
this.dataset = dataset;
if (dataset != null) {
setDatasetGroup(dataset.getGroup());
dataset.addChangeListener(this);
}
// send a dataset change event to self...
DatasetChangeEvent event = new DatasetChangeEvent(this, dataset);
datasetChanged(event);
}
/**
* Returns one of the secondary datasets.
*
* @param index the dataset index.
*
* @return The dataset (possibly <code>null</code>).
*/
public XYDataset getSecondaryDataset(int index) {
XYDataset result = null;
if (this.secondaryDatasets.size() > index) {
result = (XYDataset) this.secondaryDatasets.get(index);
}
return result;
}
/**
* Returns the number of secondary datasets.
*
* @return The number of secondary datasets.
*/
public int getSecondaryDatasetCount() {
return this.secondaryDatasets.size();
}
/**
* Adds or changes a secondary dataset for the plot.
*
* @param index the dataset index.
* @param dataset the dataset.
*/
public void setSecondaryDataset(int index, XYDataset dataset) {
this.secondaryDatasets.set(index, dataset);
// send a dataset change event to self...
DatasetChangeEvent event = new DatasetChangeEvent(this, dataset);
datasetChanged(event);
}
/**
* Maps a secondary dataset to a particular domain axis.
*
* @param index the dataset index (zero-based).
* @param key the key (<code>null</code> for primary axis, or the index of the secondary
* axis).
*/
public void mapSecondaryDatasetToDomainAxis(int index, Integer key) {
this.secondaryDatasetDomainAxisMap.set(index, key);
// fake a dataset change event to update axes...
datasetChanged(new DatasetChangeEvent(this, this.dataset));
}
/**
* Maps a secondary dataset to a particular range axis.
*
* @param index the dataset index (zero-based).
* @param key the key (<code>null</code> for primary axis, or the index of the secondary
* axis).
*/
public void mapSecondaryDatasetToRangeAxis(int index, Integer key) {
this.secondaryDatasetRangeAxisMap.set(index, key);
// fake a dataset change event to update axes...
datasetChanged(new DatasetChangeEvent(this, this.dataset));
}
/**
* Returns the item renderer.
*
* @return The item renderer (possibly <code>null</code>).
*/
public XYItemRenderer getRenderer() {
return this.renderer;
}
/**
* Sets the item renderer, and notifies all listeners of a change to the plot.
* <P>
* If the renderer is set to <code>null</code>, no chart will be drawn.
*
* @param renderer the new renderer (<code>null</code> permitted).
*/
public void setRenderer(XYItemRenderer renderer) {
if (this.renderer != null) {
this.renderer.removePropertyChangeListener(this);
}
this.renderer = renderer;
if (renderer != null) {
renderer.setPlot(this);
}
notifyListeners(new PlotChangeEvent(this));
}
/**
* Returns a secondary renderer.
*
* @param index the renderer index.
*
* @return The renderer (possibly <code>null</code>).
*/
public XYItemRenderer getSecondaryRenderer(int index) {
XYItemRenderer result = null;
if (this.secondaryRenderers.size() > index) {
result = (XYItemRenderer) this.secondaryRenderers.get(index);
}
return result;
}
/**
* Sets a secondary renderer. A {@link PlotChangeEvent} is sent to all registered listeners.
*
* @param index the index.
* @param renderer the renderer.
*/
public void setSecondaryRenderer(int index, XYItemRenderer renderer) {
XYItemRenderer existing = getSecondaryRenderer(index);
if (existing != null) {
existing.removePropertyChangeListener(this);
}
this.secondaryRenderers.set(index, renderer);
if (renderer != null) {
renderer.setPlot(this);
}
notifyListeners(new PlotChangeEvent(this));
}
/**
* Returns the weight for this plot when it is used as a subplot within a
* combined plot.
*
* @return the weight.
*/
public int getWeight() {
return this.weight;
}
/**
* Sets the weight for the plot.
*
* @param weight the weight.
*/
public void setWeight(int weight) {
this.weight = weight;
}
/**
* Returns <code>true</code> if the domain gridlines are visible, and <code>false<code>
* otherwise.
*
* @return <code>true</code> or <code>false</code>.
*/
public boolean isDomainGridlinesVisible() {
return this.domainGridlinesVisible;
}
/**
* Sets the flag that controls whether or not the domain grid-lines are visible.
* <p>
* If the flag value is changed, a {@link PlotChangeEvent} is sent to all registered listeners.
*
* @param visible the new value of the flag.
*/
public void setDomainGridlinesVisible(boolean visible) {
if (this.domainGridlinesVisible != visible) {
this.domainGridlinesVisible = visible;
notifyListeners(new PlotChangeEvent(this));
}
}
/**
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -