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

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

?? categorytextannotation.java

?? Web圖形化的Java庫
?? JAVA
字號:
/* ======================================
 * 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.
 *
 * ---------------------------
 * CategoryTextAnnotation.java
 * ---------------------------
 * (C) Copyright 2003 by Object Refinery Limited.
 *
 * Original Author:  David Gilbert (for Object Refinery Limited);
 * Contributor(s):   -;
 *
 * $Id: CategoryTextAnnotation.java,v 1.11 2003/08/20 11:34:36 mungady Exp $
 *
 * Changes:
 * --------
 * 02-Apr-2003 : Version 1 (DG);
 * 02-Jul-2003 : Added new text alignment and rotation options (DG);
 * 04-Jul-2003 : Added a category anchor option (DG);
 * 19-Aug-2003 : Added equals(...) method and implemented Cloneable (DG);
 *
 */

package org.jfree.chart.annotations;

import java.awt.Graphics2D;
import java.awt.geom.Rectangle2D;
import java.io.Serializable;

import org.jfree.chart.axis.CategoryAnchor;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.Plot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.CategoryDataset;
import org.jfree.ui.RectangleEdge;
import org.jfree.ui.RefineryUtilities;

/**
 * A text annotation that can be placed on a {@link org.jfree.chart.plot.CategoryPlot}.
 *
 * @author David Gilbert
 */
public class CategoryTextAnnotation extends TextAnnotation
                                    implements CategoryAnnotation, Cloneable, Serializable {

    /** The category. */
    private Comparable category;

    /** The category anchor (START, MIDDLE, or END). */
    private CategoryAnchor categoryAnchor;
     
    /** The value. */
    private double value;

    /**
     * Creates a new annotation to be displayed at the given location.
     *
     * @param text  the text.
     * @param category  the category.
     * @param value  the value.
     */
    public CategoryTextAnnotation(String text, Comparable category, double value) {
        super(text);
        this.category = category;
        this.value = value;
        this.categoryAnchor = CategoryAnchor.MIDDLE;
    }

    /**
     * Returns the category.
     * 
     * @return The category.
     */
    public Comparable getCategory() {
        return this.category;
    }
    
    /**
     * Sets the category that the annotation attaches to.
     * 
     * @param category  the category.
     */
    public void setCategory(Comparable category) {
        this.category = category;
    }
    
    /**
     * Returns the category anchor point.
     * 
     * @return The category anchor point.
     */
    public CategoryAnchor getCategoryAnchor() {
        return this.categoryAnchor;
    }
    
    /**
     * Sets the category anchor point.
     * 
     * @param anchor  the anchor point.
     */
    public void setCategoryAnchor(CategoryAnchor anchor) {
        this.categoryAnchor = anchor;    
    }
    
    /**
     * Returns the value that the annotation attaches to.
     * 
     * @return The value.
     */
    public double getValue() {
        return this.value;
    }
    
    /**
     * Sets the value.
     * 
     * @param value  the value.
     */
    public void setValue(double value) {
        this.value = value;    
    }
    
    /**
     * Draws the annotation.
     *
     * @param g2  the graphics device.
     * @param plot  the plot.
     * @param dataArea  the data area.
     * @param domainAxis  the domain axis.
     * @param rangeAxis  the range axis.
     */
    public void draw(Graphics2D g2, CategoryPlot plot, Rectangle2D dataArea,
                     CategoryAxis domainAxis, ValueAxis rangeAxis) {

        CategoryDataset dataset = plot.getDataset();
        int catIndex = dataset.getColumnIndex(this.category);
        int catCount = dataset.getColumnCount();

        float anchorX = 0.0f;
        float anchorY = 0.0f;
        PlotOrientation orientation = plot.getOrientation();
        RectangleEdge domainEdge = Plot.resolveDomainAxisLocation(plot.getDomainAxisLocation(), 
                                                                  orientation);
        RectangleEdge rangeEdge = Plot.resolveRangeAxisLocation(plot.getRangeAxisLocation(), 
                                                                orientation);
        
        if (orientation == PlotOrientation.HORIZONTAL) {
            anchorY = (float) domainAxis.getCategoryJava2DCoordinate(
                this.categoryAnchor, catIndex, catCount, dataArea, domainEdge
            );
            anchorX = (float) rangeAxis.translateValueToJava2D(this.value, dataArea, rangeEdge);
        }
        else if (orientation == PlotOrientation.VERTICAL) {
            anchorX = (float) domainAxis.getCategoryJava2DCoordinate(
                this.categoryAnchor, catIndex, catCount, dataArea, domainEdge
            );
            anchorY = (float) rangeAxis.translateValueToJava2D(this.value, dataArea, rangeEdge);
        }
        g2.setFont(getFont());
        g2.setPaint(getPaint());
        RefineryUtilities.drawRotatedString(
            getText(), 
            g2,
            anchorX, 
            anchorY,
            getTextAnchor(),
            getRotationAnchor(),
            getRotationAngle()
        );

    }

    /**
     * Tests this object for equality with another.
     * 
     * @param object  the object to test against.
     * 
     * @return <code>true</code> or <code>false</code>.
     */
    public boolean equals(Object object) {
        
        if (object == null) {
            return false;
        }
        
        if (object == this) {
            return true;
        }
        
        if (object instanceof CategoryTextAnnotation) {
            CategoryTextAnnotation cta = (CategoryTextAnnotation) object;
            if (super.equals(object)) {
                
                boolean b0 = this.category.equals(cta.getCategory());
                boolean b1 = this.categoryAnchor.equals(cta.getCategoryAnchor());
                boolean b2 = (this.value == cta.getValue());  
                
                return b0 && b1 && b2;
                
            }
        }
        
        return false;
    }
    
    /**
     * Returns a clone of the annotation.
     * 
     * @return A clone.
     * 
     * @throws CloneNotSupportedException  this class will not throw this exception, but subclasses
     *         (if any) might.
     */
    public Object clone() throws CloneNotSupportedException {
        return super.clone();    
    }
    
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91免费观看国产| 亚洲色图欧美激情| 亚洲欧洲性图库| 欧美aaaaa成人免费观看视频| 99在线精品一区二区三区| 制服.丝袜.亚洲.中文.综合| 国产精品福利一区二区| 国内精品写真在线观看| 欧美三区在线观看| 伊人性伊人情综合网| 国产精品99久久久| 精品国产乱码久久久久久1区2区| 亚洲福利一二三区| 91在线观看美女| 国产日韩v精品一区二区| 美女一区二区三区在线观看| 欧美日韩免费观看一区三区| 亚洲美女淫视频| 97久久精品人人澡人人爽| 国产婷婷色一区二区三区| 九一久久久久久| 欧美一级二级三级乱码| 五月天激情综合网| 欧美亚洲一区二区在线| 一区2区3区在线看| 在线免费观看日本一区| 日韩一区日韩二区| 91免费版pro下载短视频| 亚洲视频在线观看三级| 91香蕉国产在线观看软件| 国产精品日韩成人| 成人看片黄a免费看在线| 欧美精品一区二区三区在线| 韩国v欧美v日本v亚洲v| 久久久国产精品不卡| 国产乱码精品一品二品| 久久久久久免费毛片精品| 精品中文av资源站在线观看| 久久午夜电影网| 高清在线观看日韩| 综合久久久久久| 在线观看一区日韩| 日韩中文字幕不卡| 精品久久久久久久久久久久久久久久久 | 亚洲在线视频一区| 欧美男人的天堂一二区| 日韩在线卡一卡二| 精品国产sm最大网站免费看| 国产麻豆成人精品| 亚洲欧洲日韩在线| 在线观看日韩高清av| 亚洲成人久久影院| 欧美r级电影在线观看| 国产激情一区二区三区四区 | 亚洲国产精品视频| 欧美一区二区精品在线| 国产一区二区三区视频在线播放| 欧美激情在线看| 欧美艳星brazzers| 美女脱光内衣内裤视频久久影院| 国产欧美日韩在线视频| 在线亚洲人成电影网站色www| 午夜精品久久久久久久| 久久只精品国产| 一本大道久久a久久精二百 | 国产精品乡下勾搭老头1| 136国产福利精品导航| 欧美日韩久久不卡| 国产精品自产自拍| 亚洲一区二区三区四区不卡| 精品久久久久久久久久久久包黑料 | 中文字幕国产精品一区二区| 欧美在线观看视频一区二区三区| 美腿丝袜亚洲综合| 亚洲日本一区二区三区| 日韩女优电影在线观看| 91在线视频播放| 久久不见久久见中文字幕免费| 日韩一区欧美小说| 精品99久久久久久| 欧美视频一区二区三区在线观看 | 午夜视频久久久久久| 国产欧美日韩在线观看| 欧美电影在线免费观看| 99精品久久免费看蜜臀剧情介绍| 视频一区视频二区中文| 中文字幕在线不卡国产视频| 欧美成人欧美edvon| 欧美三区在线视频| av中文字幕不卡| 国产精品综合av一区二区国产馆| 婷婷激情综合网| 一区二区三区不卡在线观看 | 成人av电影在线观看| 九九九久久久精品| 午夜影视日本亚洲欧洲精品| 亚洲美女屁股眼交| 国产精品电影一区二区| 国产色综合一区| 精品国产乱码久久久久久久久 | 日本中文在线一区| 亚洲免费毛片网站| 综合亚洲深深色噜噜狠狠网站| 欧美国产精品一区二区| 26uuu色噜噜精品一区| 欧美一级二级三级乱码| 欧美精品色综合| 欧美美女喷水视频| 91精品视频网| 91精品蜜臀在线一区尤物| 欧美猛男gaygay网站| 欧美午夜精品理论片a级按摩| 91日韩在线专区| 色婷婷久久久综合中文字幕| 91女神在线视频| 欧美综合视频在线观看| 日本二三区不卡| 在线视频中文字幕一区二区| 91久久精品一区二区二区| 欧日韩精品视频| 欧美日韩情趣电影| 69堂成人精品免费视频| 日韩精品影音先锋| 久久久久久综合| 国产精品九色蝌蚪自拍| 亚洲伦理在线精品| 亚洲永久精品国产| 亚洲va国产天堂va久久en| 视频在线观看国产精品| 精品一区二区三区免费毛片爱| 国产中文一区二区三区| 成人动漫一区二区在线| 91在线视频在线| 在线不卡a资源高清| 欧美一区二区三区人| 久久嫩草精品久久久精品| 国产精品乱码人人做人人爱 | 日本一区免费视频| 亚洲乱码一区二区三区在线观看| 亚洲成人手机在线| 美女视频免费一区| 成人黄色在线看| 欧美日韩国产a| 久久久www成人免费无遮挡大片| 自拍偷拍欧美激情| 丝袜亚洲另类丝袜在线| 国产一区二区视频在线播放| 91丝袜美腿高跟国产极品老师 | 欧美三级视频在线| 精品国产伦一区二区三区观看体验| 国产精品天干天干在线综合| 亚洲第一电影网| 国产一区二区三区蝌蚪| 91久久国产综合久久| 欧美成人一级视频| 亚洲精品老司机| 狠狠色狠狠色综合| 欧美三级三级三级爽爽爽| 久久久国产午夜精品| 亚洲国产另类av| 成人伦理片在线| 欧美一区二区视频在线观看| 国产精品白丝在线| 美女在线观看视频一区二区| 色综合久久88色综合天天6| 精品国产髙清在线看国产毛片| 亚洲欧美福利一区二区| 国产精品一级片在线观看| 欧美无乱码久久久免费午夜一区| 久久久国产综合精品女国产盗摄| 午夜日韩在线电影| 色噜噜夜夜夜综合网| 日本一区二区三区在线观看| 免费av网站大全久久| 欧美系列日韩一区| 国产精品另类一区| 国产久卡久卡久卡久卡视频精品| 4438成人网| 亚洲图片欧美色图| 972aa.com艺术欧美| 欧美国产日产图区| 国产成人综合自拍| 久久免费美女视频| 美美哒免费高清在线观看视频一区二区| 色综合天天综合狠狠| 最新久久zyz资源站| 国产成人免费xxxxxxxx| 精品国产一区二区在线观看| 日本欧美一区二区三区乱码| 欧美亚洲愉拍一区二区| 亚洲美女免费在线| 日本福利一区二区| 亚洲精品写真福利| 91视视频在线直接观看在线看网页在线看 | 在线精品国精品国产尤物884a| 亚洲视频在线观看三级| 91视频在线观看| 一级中文字幕一区二区| 欧洲精品一区二区| 亚洲一二三区视频在线观看|