chartpanel.java

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

JAVA
1,880
字号
        /**     * Returns the anchor point.     *      * @return The anchor point (possibly <code>null</code>).     */    public Point2D getAnchor() {        return this.anchor;       }        /**     * Sets the anchor point.  This method is provided for the use of      * subclasses, not end users.     *      * @param anchor  the anchor point (<code>null</code> permitted).     */    protected void setAnchor(Point2D anchor) {        this.anchor = anchor;       }        /**     * Returns the popup menu.     *     * @return The popup menu.     */    public JPopupMenu getPopupMenu() {        return this.popup;    }    /**     * Sets the popup menu for the panel.     *     * @param popup  the popup menu (<code>null</code> permitted).     */    public void setPopupMenu(JPopupMenu popup) {        this.popup = popup;    }    /**     * Returns the chart rendering info from the most recent chart redraw.     *     * @return The chart rendering info.     */    public ChartRenderingInfo getChartRenderingInfo() {        return this.info;    }    /**     * A convenience method that switches on mouse-based zooming.     *     * @param flag  <code>true</code> enables zooming and rectangle fill on      *              zoom.     */    public void setMouseZoomable(boolean flag) {        setMouseZoomable(flag, true);    }    /**     * A convenience method that switches on mouse-based zooming.     *     * @param flag  <code>true</code> if zooming enabled     * @param fillRectangle  <code>true</code> if zoom rectangle is filled,     *                       false if rectangle is shown as outline only.     */    public void setMouseZoomable(boolean flag, boolean fillRectangle) {        setDomainZoomable(flag);        setRangeZoomable(flag);        setFillZoomRectangle(fillRectangle);    }    /**     * Returns the flag that determines whether or not zooming is enabled for      * the domain axis.     *      * @return A boolean.     */    public boolean isDomainZoomable() {        return this.domainZoomable;    }        /**     * Sets the flag that controls whether or not zooming is enable for the      * domain axis.  A check is made to ensure that the current plot supports     * zooming for the domain values.     *     * @param flag  <code>true</code> enables zooming if possible.     */    public void setDomainZoomable(boolean flag) {        if (flag) {            Plot plot = this.chart.getPlot();            if (plot instanceof Zoomable) {                Zoomable z = (Zoomable) plot;                this.domainZoomable = flag && (z.isDomainZoomable());              }        }        else {            this.domainZoomable = false;        }    }    /**     * Returns the flag that determines whether or not zooming is enabled for      * the range axis.     *      * @return A boolean.     */    public boolean isRangeZoomable() {        return this.rangeZoomable;    }        /**     * A flag that controls mouse-based zooming on the vertical axis.     *     * @param flag  <code>true</code> enables zooming.     */    public void setRangeZoomable(boolean flag) {        if (flag) {            Plot plot = this.chart.getPlot();            if (plot instanceof Zoomable) {                Zoomable z = (Zoomable) plot;                this.rangeZoomable = flag && (z.isRangeZoomable());              }        }        else {            this.rangeZoomable = false;        }    }    /**     * Returns the flag that controls whether or not the zoom rectangle is     * filled when drawn.     *      * @return A boolean.     */    public boolean getFillZoomRectangle() {        return this.fillZoomRectangle;    }        /**     * A flag that controls how the zoom rectangle is drawn.     *     * @param flag  <code>true</code> instructs to fill the rectangle on     *              zoom, otherwise it will be outlined.     */    public void setFillZoomRectangle(boolean flag) {        this.fillZoomRectangle = flag;    }    /**     * Returns the zoom trigger distance.  This controls how far the mouse must     * move before a zoom action is triggered.     *      * @return The distance (in Java2D units).     */    public int getZoomTriggerDistance() {        return this.zoomTriggerDistance;    }        /**     * Sets the zoom trigger distance.  This controls how far the mouse must      * move before a zoom action is triggered.     *      * @param distance  the distance (in Java2D units).     */    public void setZoomTriggerDistance(int distance) {        this.zoomTriggerDistance = distance;    }        /**     * Returns the flag that controls whether or not a horizontal axis trace     * line is drawn over the plot area at the current mouse location.     *      * @return A boolean.     */    public boolean getHorizontalAxisTrace() {        return this.horizontalAxisTrace;        }        /**     * A flag that controls trace lines on the horizontal axis.     *     * @param flag  <code>true</code> enables trace lines for the mouse     *      pointer on the horizontal axis.     */    public void setHorizontalAxisTrace(boolean flag) {        this.horizontalAxisTrace = flag;    }        /**     * Returns the horizontal trace line.     *      * @return The horizontal trace line (possibly <code>null</code>).     */    protected Line2D getHorizontalTraceLine() {        return this.horizontalTraceLine;       }        /**     * Sets the horizontal trace line.     *      * @param line  the line (<code>null</code> permitted).     */    protected void setHorizontalTraceLine(Line2D line) {        this.horizontalTraceLine = line;       }    /**     * Returns the flag that controls whether or not a vertical axis trace     * line is drawn over the plot area at the current mouse location.     *      * @return A boolean.     */    public boolean getVerticalAxisTrace() {        return this.verticalAxisTrace;        }        /**     * A flag that controls trace lines on the vertical axis.     *     * @param flag  <code>true</code> enables trace lines for the mouse     *              pointer on the vertical axis.     */    public void setVerticalAxisTrace(boolean flag) {        this.verticalAxisTrace = flag;    }    /**     * Returns the vertical trace line.     *      * @return The vertical trace line (possibly <code>null</code>).     */    protected Line2D getVerticalTraceLine() {        return this.verticalTraceLine;       }        /**     * Sets the vertical trace line.     *      * @param line  the line (<code>null</code> permitted).     */    protected void setVerticalTraceLine(Line2D line) {        this.verticalTraceLine = line;       }    /**     * Returns <code>true</code> if file extensions should be enforced, and      * <code>false</code> otherwise.     *     * @return The flag.     */    public boolean isEnforceFileExtensions() {        return this.enforceFileExtensions;    }    /**     * Sets a flag that controls whether or not file extensions are enforced.     *     * @param enforce  the new flag value.     */    public void setEnforceFileExtensions(boolean enforce) {        this.enforceFileExtensions = enforce;    }    /**     * Switches the display of tooltips for the panel on or off.  Note that      * tooltips can only be displayed if the chart has been configured to     * generate tooltip items.     *     * @param flag  <code>true</code> to enable tooltips, <code>false</code> to     *              disable tooltips.     */    public void setDisplayToolTips(boolean flag) {        if (flag) {            ToolTipManager.sharedInstance().registerComponent(this);        }        else {            ToolTipManager.sharedInstance().unregisterComponent(this);        }    }    /**     * Returns a string for the tooltip.     *     * @param e  the mouse event.     *     * @return A tool tip or <code>null</code> if no tooltip is available.     */    public String getToolTipText(MouseEvent e) {        String result = null;        if (this.info != null) {            EntityCollection entities = this.info.getEntityCollection();            if (entities != null) {                Insets insets = getInsets();                ChartEntity entity = entities.getEntity(                    (int) ((e.getX() - insets.left) / this.scaleX),                    (int) ((e.getY() - insets.top) / this.scaleY)                );                if (entity != null) {                    result = entity.getToolTipText();                }            }        }        return result;    }    /**     * Translates a Java2D point on the chart to a screen location.     *     * @param java2DPoint  the Java2D point.     *     * @return The screen location.     */    public Point translateJava2DToScreen(Point2D java2DPoint) {        Insets insets = getInsets();        int x = (int) (java2DPoint.getX() * this.scaleX + insets.left);        int y = (int) (java2DPoint.getY() * this.scaleY + insets.top);        return new Point(x, y);    }    /**     * Translates a screen location to a Java2D point.     *     * @param screenPoint  the screen location.     *     * @return The Java2D coordinates.     */    public Point2D translateScreenToJava2D(Point screenPoint) {        Insets insets = getInsets();        double x = (screenPoint.getX() - insets.left) / this.scaleX;        double y = (screenPoint.getY() - insets.top) / this.scaleY;        return new Point2D.Double(x, y);    }    /**     * Applies any scaling that is in effect for the chart drawing to the     * given rectangle.     *       * @param rect  the rectangle.     *      * @return A new scaled rectangle.     */    public Rectangle2D scale(Rectangle2D rect) {        Insets insets = getInsets();        double x = rect.getX() * getScaleX() + insets.left;        double y = rect.getY() * this.getScaleY() + insets.top;        double w = rect.getWidth() * this.getScaleX();        double h = rect.getHeight() * this.getScaleY();        return new Rectangle2D.Double(x, y, w, h);    }    /**     * Returns the chart entity at a given point.     * <P>     * This method will return null if there is (a) no entity at the given      * point, or (b) no entity collection has been generated.     *     * @param viewX  the x-coordinate.     * @param viewY  the y-coordinate.     *     * @return The chart entity (possibly <code>null</code>).     */    public ChartEntity getEntityForPoint(int viewX, int viewY) {        ChartEntity result = null;        if (this.info != null) {            Insets insets = getInsets();            double x = (viewX - insets.left) / this.scaleX;            double y = (viewY - insets.top) / this.scaleY;            EntityCollection entities = this.info.getEntityCollection();            result = entities != null ? entities.getEntity(x, y) : null;         }        return result;    }

⌨️ 快捷键说明

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