standardxyitemrenderer.java

来自「JfreeChart 常用图表例子」· Java 代码 · 共 1,034 行 · 第 1/3 页

JAVA
1,034
字号
     *     * @param series  the series index (zero-based).     *     * @return A boolean.     */    public boolean getSeriesShapesFilled(int series) {        // return the overall setting, if there is one...        if (this.shapesFilled != null) {            return this.shapesFilled.booleanValue();        }        // otherwise look up the paint table        Boolean flag = this.seriesShapesFilled.getBoolean(series);        if (flag != null) {            return flag.booleanValue();        }        else {            return this.defaultShapesFilled.booleanValue();        }    }    /**     * Sets the 'shapes filled' for ALL series.     *     * @param filled  the flag.     */    public void setShapesFilled(boolean filled) {        // here we use BooleanUtilities to remain compatible with JDKs < 1.4         setShapesFilled(BooleanUtilities.valueOf(filled));    }    /**     * Sets the 'shapes filled' for ALL series.     *     * @param filled  the flag (<code>null</code> permitted).     */    public void setShapesFilled(Boolean filled) {        this.shapesFilled = filled;    }    /**     * Sets the 'shapes filled' flag for a series.     *     * @param series  the series index (zero-based).     * @param flag  the flag.     */    public void setSeriesShapesFilled(int series, Boolean flag) {        this.seriesShapesFilled.setBoolean(series, flag);    }    /**     * Returns the default 'shape filled' attribute.     *     * @return The default flag.     */    public Boolean getDefaultShapesFilled() {        return this.defaultShapesFilled;    }    /**     * Sets the default 'shapes filled' flag.     *     * @param flag  the flag.     */    public void setDefaultShapesFilled(Boolean flag) {        this.defaultShapesFilled = flag;    }    /**     * Returns true if lines are being plotted by the renderer.     *     * @return <code>true</code> if lines are being plotted by the renderer.     */    public boolean getPlotLines() {        return this.plotLines;    }    /**     * Sets the flag that controls whether or not a line is plotted between      * each data point.     *     * @param flag  the flag.     */    public void setPlotLines(boolean flag) {        if (this.plotLines != flag) {            this.plotLines = flag;            notifyListeners(new RendererChangeEvent(this));        }    }    /**     * Returns the gap threshold type (relative or absolute).     *      * @return The type.     */    public UnitType getGapThresholdType() {        return this.gapThresholdType;    }        /**     * Sets the gap threshold type.     *      * @param thresholdType  the type (<code>null</code> not permitted).     */    public void setGapThresholdType(UnitType thresholdType) {        if (thresholdType == null) {            throw new IllegalArgumentException(                "Null 'thresholdType' argument."            );        }        this.gapThresholdType = thresholdType;        notifyListeners(new RendererChangeEvent(this));    }        /**     * Returns the gap threshold for discontinuous lines.     *     * @return The gap threshold.     */    public double getGapThreshold() {        return this.gapThreshold;    }    /**     * Sets the gap threshold for discontinuous lines.     *     * @param t  the threshold.     */    public void setGapThreshold(double t) {        this.gapThreshold = t;        notifyListeners(new RendererChangeEvent(this));    }    /**     * Returns true if images are being plotted by the renderer.     *     * @return <code>true</code> if images are being plotted by the renderer.     */    public boolean getPlotImages() {        return this.plotImages;    }    /**     * Sets the flag that controls whether or not an image is drawn at each      * data point.     *     * @param flag  the flag.     */    public void setPlotImages(boolean flag) {        if (this.plotImages != flag) {            this.plotImages = flag;            notifyListeners(new RendererChangeEvent(this));        }    }    /**     * Returns true if lines should be discontinuous.     *     * @return <code>true</code> if lines should be discontinuous.     */    public boolean getPlotDiscontinuous() {        return this.plotDiscontinuous;    }    /**     * Returns a flag that controls whether or not each series is drawn as a      * single path.     *      * @return A boolean.     */    public boolean getDrawSeriesLineAsPath() {        return this.drawSeriesLineAsPath;    }        /**     * Sets the flag that controls whether or not each series is drawn as a      * single path.     *      * @param flag  the flag.     */    public void setDrawSeriesLineAsPath(boolean flag) {        this.drawSeriesLineAsPath = flag;    }        /**     * Returns the shape used to represent a line in the legend.     *      * @return The legend line (never <code>null</code>).     */    public Shape getLegendLine() {        return this.legendLine;       }        /**     * Sets the shape used as a line in each legend item and sends a      * {@link RendererChangeEvent} to all registered listeners.     *      * @param line  the line (<code>null</code> not permitted).     */    public void setLegendLine(Shape line) {        if (line == null) {            throw new IllegalArgumentException("Null 'line' argument.");           }        this.legendLine = line;        notifyListeners(new RendererChangeEvent(this));    }    /**     * Returns a legend item for a series.     *     * @param datasetIndex  the dataset index (zero-based).     * @param series  the series index (zero-based).     *     * @return A legend item for the series.     */    public LegendItem getLegendItem(int datasetIndex, int series) {        XYPlot plot = getPlot();        if (plot == null) {            return null;        }        LegendItem result = null;        XYDataset dataset = plot.getDataset(datasetIndex);        if (dataset != null) {            if (getItemVisible(series, 0)) {                String label = getLegendItemLabelGenerator().generateLabel(                    dataset, series                );                String description = label;                String toolTipText = null;                if (getLegendItemToolTipGenerator() != null) {                    toolTipText = getLegendItemToolTipGenerator().generateLabel(                        dataset, series                    );                }                String urlText = null;                if (getLegendItemURLGenerator() != null) {                    urlText = getLegendItemURLGenerator().generateLabel(                        dataset, series                    );                }                Shape shape = getSeriesShape(series);                boolean shapeFilled = getSeriesShapesFilled(series);                Paint paint = getSeriesPaint(series);                Paint linePaint = paint;                Stroke lineStroke = getSeriesStroke(series);                result = new LegendItem(                    label, description, toolTipText, urlText,                     this.plotShapes, shape, shapeFilled,                    paint, !shapeFilled, paint, lineStroke,                     this.plotLines, this.legendLine, lineStroke, linePaint                );            }        }        return result;    }    /**     * Records the state for the renderer.  This is used to preserve state      * information between calls to the drawItem() method for a single chart      * drawing.     */    public static class State extends XYItemRendererState {                /** The path for the current series. */        public GeneralPath seriesPath;                /**          * A flag that indicates if the last (x, y) point was 'good'          * (non-null).          */        private boolean lastPointGood;                /**         * Creates a new state instance.         *          * @param info  the plot rendering info.         */        public State(PlotRenderingInfo info) {            super(info);        }                /**         * Returns a flag that indicates if the last point drawn (in the          * current series) was 'good' (non-null).         *          * @return A boolean.         */        public boolean isLastPointGood() {            return this.lastPointGood;        }                /**         * Sets a flag that indicates if the last point drawn (in the current          * series) was 'good' (non-null).         *          * @param good  the flag.         */        public void setLastPointGood(boolean good) {            this.lastPointGood = good;        }    }        /**     * Initialises the renderer.     * <P>     * This method will be called before the first item is rendered, giving the     * renderer an opportunity to initialise any state information it wants to      * maintain. The renderer can do nothing if it chooses.     *     * @param g2  the graphics device.     * @param dataArea  the area inside the axes.     * @param plot  the plot.     * @param data  the data.     * @param info  an optional info collection object to return data back to      *              the caller.     *     * @return The renderer state.     */    public XYItemRendererState initialise(Graphics2D g2,                                          Rectangle2D dataArea,                                          XYPlot plot,                                          XYDataset data,                                          PlotRenderingInfo info) {        State state = new State(info);        state.seriesPath = new GeneralPath();        return state;    }        /**     * Draws the visual representation of a single data item.     *     * @param g2  the graphics device.     * @param state  the renderer state.     * @param dataArea  the area within which the data is being drawn.     * @param info  collects information about the drawing.     * @param plot  the plot (can be used to obtain standard color information      *              etc).     * @param domainAxis  the domain axis.     * @param rangeAxis  the range axis.     * @param dataset  the dataset.     * @param series  the series index (zero-based).

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?