亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? combinedrangexyplot.java

?? Web圖形化的Java庫
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
/* ======================================
 * JFreeChart : a free Java chart library
 * ======================================
 *
 * Project Info:  http://www.jfree.org/jfreechart/index.html
 * Project Lead:  David Gilbert (david.gilbert@object-refinery.com);
 *
 * (C) Copyright 2000-2003, by Object Refinery Limited and Contributors.
 *
 * This library is free software; you can redistribute it and/or modify it under the terms
 * of the GNU Lesser General Public License as published by the Free Software Foundation;
 * either version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * See the GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License along with this
 * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
 * Boston, MA 02111-1307, USA.
 *
 * ------------------------
 * CombinedRangeXYPlot.java
 * ------------------------
 * (C) Copyright 2001-2003, by Bill Kelemen and Contributors.
 *
 * Original Author:  Bill Kelemen;
 * Contributor(s):   David Gilbert (for Object Refinery Limited);
 *                   Anthony Boulestreau;
 *                   David Basten;
 *                   Kevin Frechette (for ISTI);
 *                   Arnaud Lelievre;
 *
 * $Id: CombinedRangeXYPlot.java,v 1.14 2003/09/08 22:08:02 mungady Exp $
 *
 * Changes:
 * --------
 * 06-Dec-2001 : Version 1 (BK);
 * 12-Dec-2001 : Removed unnecessary 'throws' clause from constructor (DG);
 * 18-Dec-2001 : Added plotArea attribute and get/set methods (BK);
 * 22-Dec-2001 : Fixed bug in chartChanged with multiple combinations of CombinedPlots (BK);
 * 08-Jan-2002 : Moved to new package com.jrefinery.chart.combination (DG);
 * 25-Feb-2002 : Updated import statements (DG);
 * 28-Feb-2002 : Readded "this.plotArea = plotArea" that was deleted from draw() method (BK);
 * 26-Mar-2002 : Added an empty zoom method (this method needs to be written so that combined
 *               plots will support zooming (DG);
 * 29-Mar-2002 : Changed the method createCombinedAxis adding the creation of OverlaidSymbolicAxis
 *               and CombinedSymbolicAxis(AB);
 * 23-Apr-2002 : Renamed CombinedPlot-->MultiXYPlot, and simplified the structure (DG);
 * 23-May-2002 : Renamed (again) MultiXYPlot-->CombinedXYPlot (DG);
 * 19-Jun-2002 : Added get/setGap() methods suggested by David Basten (DG);
 * 25-Jun-2002 : Removed redundant imports (DG);
 * 16-Jul-2002 : Draws shared axis after subplots (to fix missing gridlines),
 *               added overrides of 'setSeriesPaint()' and 'setXYItemRenderer()'
 *               that pass changes down to subplots (KF);
 * 09-Oct-2002 : Added add(XYPlot) method (DG);
 * 26-Mar-2003 : Implemented Serializable (DG);
 * 16-May-2003 : Renamed CombinedXYPlot --> CombinedRangeXYPlot (DG);
 * 26-Jun-2003 : Fixed bug 755547 (DG);
 * 16-Jul-2003 : Removed getSubPlots() method (duplicate of getSubplots()) (DG);
 * 08-Aug-2003 : Adjusted totalWeight in remove(...) method (DG);
 * 21-Aug-2003 : Implemented Cloneable (DG);
 * 08-Sep-2003 : Added internationalization via use of properties resourceBundle (RFE 690236) (AL); 
 *
 */

package org.jfree.chart.plot;

import java.awt.Graphics2D;
import java.awt.Insets;
import java.awt.geom.Rectangle2D;
import java.io.Serializable;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.ResourceBundle;

import org.jfree.chart.ChartRenderingInfo;
import org.jfree.chart.LegendItemCollection;
import org.jfree.chart.axis.AxisSpace;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.event.PlotChangeEvent;
import org.jfree.chart.renderer.XYItemRenderer;
import org.jfree.data.Range;
import org.jfree.ui.RectangleEdge;
import org.jfree.util.ObjectUtils;

/**
 * An extension of {@link XYPlot} that contains multiple subplots that share a common range axis.
 *
 * @author Bill Kelemen (bill@kelemen-usa.com).
 * @author David Gilbert.
 */
public class CombinedRangeXYPlot extends XYPlot implements Cloneable, Serializable {

    /** Storage for the subplot references. */
    private List subplots;

    /** Total weight of all charts. */
    private int totalWeight = 0;

    /** The gap between subplots. */
    private double gap = 5.0;

    /** Temporary storage for the subplot areas. */
    private transient Rectangle2D[] subplotAreas;
    
    /** The resourceBundle for the localization. */
    static protected ResourceBundle localizationResources = 
                            ResourceBundle.getBundle("org.jfree.chart.plot.LocalizationBundle");

    /**
     * Default constructor.
     */
    public CombinedRangeXYPlot() {
        this(new NumberAxis());
    }
    
    /**
     * Creates a new plot.
     *
     * @param rangeAxis  the shared axis.
     */
    public CombinedRangeXYPlot(ValueAxis rangeAxis) {

        super(null, // no data in the parent plot
              null,
              rangeAxis,
              null);

        this.subplots = new java.util.ArrayList();

    }

    /**
     * Returns a string describing the type of plot.
     *
     * @return the type of plot.
     */
    public String getPlotType() {
        return localizationResources.getString("Combined_Range_XYPlot");
    }

    /**
     * Returns the space between subplots.
     *
     * @return the gap
     */
    public double getGap() {
        return gap;
    }

    /**
     * Sets the amount of space between subplots.
     *
     * @param gap  the gap between subplots
     */
    public void setGap(double gap) {
        this.gap = gap;
    }

    /**
     * Adds a subplot, with a default 'weight' of 1.
     *
     * @param subplot  the subplot.
     */
    public void add(XYPlot subplot) {
        add(subplot, 1);
    }

    /**
     * Adds a subplot with a particular weight (greater than or equal to one).  The weight
     * determines how much space is allocated to the subplot relative to all the other subplots.
     *
     * @param subplot  the subplot.
     * @param weight  the weight (must be 1 or greater).
     */
    public void add(XYPlot subplot, int weight) {

        // verify valid weight
        if (weight <= 0) {
            String msg = "CombinedRangeXYPlot.add(...): weight must be positive.";
            throw new IllegalArgumentException(msg);
        }

        // store the plot and its weight
        subplot.setParent(this);
        subplot.setWeight(weight);
        subplot.setInsets(new Insets(0, 0, 0, 0));
        subplot.setRangeAxis(null);
        this.subplots.add(subplot);

        // keep track of total weights
        this.totalWeight += weight;

        // configure the range axis...
        ValueAxis axis = getRangeAxis();
        if (axis != null) {
            axis.configure();
        }
        configureSecondaryRangeAxes();
        notifyListeners(new PlotChangeEvent(this));

    }

    /**
     * Removes a subplot from the combined chart.
     *
     * @param subplot  the subplot.
     */
    public void remove(XYPlot subplot) {

        subplots.remove(subplot);
        subplot.setParent(null);
        this.totalWeight -= subplot.getWeight();
        
        ValueAxis range = getRangeAxis();
        if (range != null) {
            range.configure();
        }
        configureSecondaryRangeAxes();

        notifyListeners(new PlotChangeEvent(this));

    }

    /**
     * Returns the list of subplots.
     *
     * @return the list of subplots.
     */
    public List getSubplots() {
        return Collections.unmodifiableList(this.subplots);
    }

    /**
     * Calculates the space required for the axes.
     * 
     * @param g2  the graphics device.
     * @param plotArea  the plot area.
     * 
     * @return The space required for the axes.
     */
    protected AxisSpace calculateAxisSpace(Graphics2D g2, Rectangle2D plotArea) {
        
        AxisSpace space = new AxisSpace();
        PlotOrientation orientation = getOrientation();
        
        // work out the space required by the domain axis...
        AxisSpace fixed = getFixedRangeAxisSpace();
        if (fixed != null) {
            if (orientation == PlotOrientation.VERTICAL) {
                space.setLeft(fixed.getLeft());
                space.setRight(fixed.getRight());
            }
            else if (orientation == PlotOrientation.HORIZONTAL) {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品国产秦先生| 久久不见久久见中文字幕免费| 精品三级av在线| 日韩亚洲欧美在线| 欧美大片在线观看| 久久综合色播五月| 欧美国产综合色视频| 亚洲国产精品成人综合| 亚洲欧美日韩在线播放| 亚洲夂夂婷婷色拍ww47| 亚洲h在线观看| 日本强好片久久久久久aaa| 蜜臀国产一区二区三区在线播放 | 欧洲av一区二区嗯嗯嗯啊| 一本久道久久综合中文字幕| 日本高清不卡视频| 欧美精品日韩精品| 精品美女被调教视频大全网站| 久久免费视频一区| 亚洲欧洲日本在线| 午夜国产精品影院在线观看| 麻豆91小视频| yourporn久久国产精品| 欧美午夜影院一区| www国产亚洲精品久久麻豆| 国产精品色婷婷| 午夜日韩在线电影| 国产一区二区三区黄视频| 99re视频精品| 日韩一级视频免费观看在线| 国产欧美久久久精品影院| 亚洲一区中文日韩| 国产成人亚洲综合a∨婷婷| 色综合网色综合| 欧美成人一级视频| 亚洲少妇30p| 国产综合色产在线精品| 91国模大尺度私拍在线视频| 精品国产91亚洲一区二区三区婷婷| 欧美精彩视频一区二区三区| 日韩黄色在线观看| 丁香天五香天堂综合| 欧美久久一区二区| 成人免费小视频| 狠狠色2019综合网| 欧美日韩一级二级三级| 国产精品久久久99| 国产原创一区二区| 8x8x8国产精品| 一区二区欧美在线观看| 成人午夜av影视| 久久色成人在线| 日韩精品一二三四| 欧美视频自拍偷拍| 亚洲另类在线一区| 成人午夜视频免费看| 欧美成人一区二区三区| 日韩精品亚洲一区二区三区免费| 色先锋久久av资源部| 国产精品乱人伦中文| 国产精品一区二区久激情瑜伽| 欧美久久一二区| 日韩精品久久理论片| 欧美伊人精品成人久久综合97| 国产精品久久精品日日| 国产91在线观看| 国产视频一区在线观看| 国产在线精品免费| 久久综合久久综合亚洲| 精品影视av免费| 欧美精品一区二区久久久| 美女脱光内衣内裤视频久久网站 | 国产九色sp调教91| 欧美成人video| 蜜桃传媒麻豆第一区在线观看| 欧美一区二区精品在线| 日韩av高清在线观看| 日韩欧美美女一区二区三区| 日本三级亚洲精品| 欧美大片在线观看一区二区| 精品一区二区三区在线观看国产 | 亚洲国产精品久久久男人的天堂| 不卡的av电影在线观看| 国产精品久久久久影院老司| 色综合视频在线观看| 亚洲夂夂婷婷色拍ww47| 欧美日韩一区高清| 美女视频网站黄色亚洲| 久久亚洲综合av| 成人激情动漫在线观看| 亚洲欧美另类久久久精品| 欧美中文字幕亚洲一区二区va在线 | 国产精一品亚洲二区在线视频| 精品国产乱码久久久久久图片| 激情综合网最新| 国产精品人妖ts系列视频| 色综合久久中文综合久久牛| 亚洲成a人片在线不卡一二三区| 91精品福利在线一区二区三区 | 国产精品99久久久久久久vr| 国产精品欧美极品| 欧美性淫爽ww久久久久无| 日韩电影在线观看网站| 中文文精品字幕一区二区| 色综合天天综合网天天狠天天| 亚洲香肠在线观看| 2017欧美狠狠色| 色欧美乱欧美15图片| 奇米精品一区二区三区四区 | 亚洲国产视频直播| 欧美videossexotv100| 99久久精品国产一区二区三区 | 亚洲另类色综合网站| 日韩欧美一级片| av不卡免费电影| 精品一二三四区| 亚洲综合色噜噜狠狠| 久久久久久久久一| 欧美群妇大交群的观看方式| 国产又粗又猛又爽又黄91精品| 亚洲一区二区在线免费观看视频 | 色哟哟亚洲精品| 国产盗摄一区二区| 免费久久99精品国产| 夜夜嗨av一区二区三区网页| 国产视频一区不卡| 91精品国产91综合久久蜜臀| 色av成人天堂桃色av| 国产精品66部| 国产一区二区三区综合| 美国欧美日韩国产在线播放| 亚洲一区二区三区在线| 国产精品成人午夜| 久久久午夜电影| 精品久久久久久久久久久院品网 | 自拍偷拍国产精品| 国产女同互慰高潮91漫画| 日韩欧美一区二区久久婷婷| 欧美三级中文字幕在线观看| 99久久久久免费精品国产| 国产高清不卡一区| 精品一区二区国语对白| 另类小说综合欧美亚洲| 日韩精品午夜视频| 丝袜美腿亚洲综合| 亚洲午夜免费视频| 亚洲女人小视频在线观看| 国产精品不卡在线| 国产精品久久毛片| 中文字幕精品综合| 国产精品亲子伦对白| 久久精品视频免费| 亚洲国产成人私人影院tom| 欧美国产日韩在线观看| 中文一区一区三区高中清不卡| 国产农村妇女精品| 中文字幕一区二区在线播放| 中文字幕一区二区三区精华液| 国产精品国产a级| 亚洲欧洲99久久| 一区二区三区欧美日韩| 亚洲一区二区偷拍精品| 日韩极品在线观看| 久久国产成人午夜av影院| 亚洲欧美一区二区三区国产精品 | 狠狠色2019综合网| 成人污污视频在线观看| 99v久久综合狠狠综合久久| 色综合中文综合网| 狠狠v欧美v日韩v亚洲ⅴ| 国产精品一区二区在线观看不卡 | 在线免费av一区| 7777精品伊人久久久大香线蕉经典版下载| 欧美精品久久久久久久久老牛影院| 欧美日韩的一区二区| 精品国产乱码久久久久久久| 国产午夜精品理论片a级大结局| 日韩理论在线观看| 婷婷激情综合网| 国产在线视频不卡二| 99精品国产一区二区三区不卡| 欧美午夜精品理论片a级按摩| 91精品国产日韩91久久久久久| 欧美大片在线观看| 亚洲日本在线看| 日韩av一区二区三区四区| 国产 日韩 欧美大片| 在线视频你懂得一区| 精品国产一区a| 一区二区在线看| 九九国产精品视频| 91国偷自产一区二区使用方法| 欧美一区二区在线视频| 国产精品美女一区二区| 人人狠狠综合久久亚洲| av一区二区三区四区| 日韩欧美成人激情| 亚洲影视资源网| av在线不卡观看免费观看| 欧美一级国产精品|