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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? abstracttitle.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.
 *
 * ------------------
 * AbstractTitle.java
 * ------------------
 * (C) Copyright 2000-2003, by David Berry and Contributors.
 *
 * Original Author:  David Berry;
 * Contributor(s):   David Gilbert (for Object Refinery Limited);
 *
 * $Id: AbstractTitle.java,v 1.5 2003/08/20 11:31:13 mungady Exp $
 *
 * Changes (from 21-Aug-2001)
 * --------------------------
 * 21-Aug-2001 : Added standard header (DG);
 * 18-Sep-2001 : Updated header (DG);
 * 14-Nov-2001 : Package com.jrefinery.common.ui.* changed to com.jrefinery.ui.* (DG);
 * 07-Feb-2002 : Changed blank space around title from Insets --> Spacer, to allow for relative
 *               or absolute spacing (DG);
 * 25-Jun-2002 : Removed unnecessary imports (DG);
 * 01-Oct-2002 : Fixed errors reported by Checkstyle (DG);
 * 14-Oct-2002 : Changed the event listener storage structure (DG);
 *
 */

package org.jfree.chart;

import java.awt.Graphics2D;
import java.awt.geom.Rectangle2D;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;

import javax.swing.event.EventListenerList;

import org.jfree.chart.event.TitleChangeEvent;
import org.jfree.chart.event.TitleChangeListener;
import org.jfree.util.ObjectUtils;

/**
 * The base class for all chart titles.
 * <P>
 * A chart can have multiple titles, appearing at the top, bottom, left or
 * right of the chart (defined by the constants TOP, BOTTOM, LEFT and RIGHT ---
 * we also use the constants NORTH, SOUTH, EAST and WEST to remain consistent
 * with java.awt.BorderLayout, as most developers will be familiar with that
 * class).
 * <P>
 * Concrete implementations of this class will render text, images, and hence
 * do the actual work of drawing titles.
 *
 * @author David Berry
 */
public abstract class AbstractTitle extends Object implements Cloneable, Serializable {

    /** Useful constant for the title position (also used for vertical alignment). */
    public static final int TOP = 0;

    /** Useful constant for the title position (also used for vertical alignment). */
    public static final int BOTTOM = 1;

    /** Useful constant for the title position (also used for horizontal alignment). */
    public static final int RIGHT = 2;

    /** Useful constant for the title position (also used for horizontal alignment). */
    public static final int LEFT = 3;

    /** Useful constant for the title position. */
    public static final int NORTH = 0;

    /** Useful constant for the title position. */
    public static final int SOUTH = 1;

    /** Useful constant for the title position. */
    public static final int EAST = 2;

    /** Useful constant for the title position. */
    public static final int WEST = 3;

    /** Useful constant for the title alignment (horizontal or vertical). */
    public static final int CENTER = 4;

    /** Useful constant for the title alignment (horizontal or vertical). */
    public static final int MIDDLE = 4;

    /** The default title position. */
    public static final int DEFAULT_POSITION = AbstractTitle.TOP;

    /** The default horizontal alignment. */
    public static final int DEFAULT_HORIZONTAL_ALIGNMENT = AbstractTitle.CENTER;

    /** The default vertical alignment. */
    public static final int DEFAULT_VERTICAL_ALIGNMENT = AbstractTitle.MIDDLE;

    /** Default title spacer. */
    public static final Spacer DEFAULT_SPACER = new Spacer(Spacer.RELATIVE, 0.01, 0.30, 0.01, 0.15);

    /**
     * The position of the title (use the constants NORTH, SOUTH, EAST and
     * WEST, or if you prefer you can also use TOP, BOTTOM, LEFT and RIGHT).
     */
    private int position;

    /** The horizontal alignment of the title. */
    private int horizontalAlignment;

    /** The vertical alignment of the title. */
    private int verticalAlignment;

    /** The amount of blank space to leave around the title. */
    private Spacer spacer;

    /** Storage for registered change listeners. */
    private transient EventListenerList listenerList;

    /** A flag that can be used to temporarily disable the listener mechanism. */
    private boolean notify;

    /**
     * Creates a new title, using default attributes where necessary.
     */
    protected AbstractTitle() {

        this(AbstractTitle.DEFAULT_POSITION,
             AbstractTitle.DEFAULT_HORIZONTAL_ALIGNMENT,
             AbstractTitle.DEFAULT_VERTICAL_ALIGNMENT,
             AbstractTitle.DEFAULT_SPACER);

    }

    /**
     * Creates a new title, using default attributes where necessary.
     *
     * @param position  the relative position of the title (TOP, BOTTOM, RIGHT and LEFT).
     * @param horizontalAlignment  the horizontal alignment of the title (LEFT, CENTER or RIGHT).
     * @param verticalAlignment  the vertical alignment of the title (TOP, MIDDLE or BOTTOM).
     */
    protected AbstractTitle(int position, int horizontalAlignment, int verticalAlignment) {

        this(position,
             horizontalAlignment, verticalAlignment,
             AbstractTitle.DEFAULT_SPACER);

    }

    /**
     * Constructs a new AbstractTitle.
     * <P>
     * This class defines constants for the valid position and alignment values
     * --- an IllegalArgumentException will be thrown if invalid values are
     * passed to this constructor.
     *
     * @param position  the relative position of the title (TOP, BOTTOM, RIGHT and LEFT).
     * @param horizontalAlignment  the horizontal alignment of the title (LEFT, CENTER or RIGHT).
     * @param verticalAlignment  the vertical alignment of the title (TOP, MIDDLE or BOTTOM).
     * @param spacer  the amount of space to leave around the outside of the title.
     */
    protected AbstractTitle(int position,
                            int horizontalAlignment, int verticalAlignment,
                            Spacer spacer) {

        // check arguments...
        if (!isValidPosition(position)) {
            throw new IllegalArgumentException("AbstractTitle(): invalid position.");
        }

        if (!AbstractTitle.isValidHorizontalAlignment(horizontalAlignment)) {
            throw new IllegalArgumentException("AbstractTitle(): invalid horizontal alignment.");
        }

        if (!AbstractTitle.isValidVerticalAlignment(verticalAlignment)) {
            throw new IllegalArgumentException("AbstractTitle(): invalid vertical alignment.");
        }

        // initialise...
        this.position = position;
        this.horizontalAlignment = horizontalAlignment;
        this.verticalAlignment = verticalAlignment;
        this.spacer = spacer;
        this.listenerList = new EventListenerList();
        this.notify = true;

    }

    /**
     * Returns the relative position of the title---represented by one of four
     * integer constants defined in this class: TOP, BOTTOM, RIGHT or LEFT (or
     * the equivalent NORTH, SOUTH, EAST and WEST).
     *
     * @return The title position.
     */
    public int getPosition() {
        return this.position;
    }

    /**
     * Sets the position for the title.
     *
     * @param position  the relative position of the title (use one of the constants TOP, BOTTOM,
     *                  RIGHT and LEFT, or the equivalent NORTH, SOUTH, EAST and WEST).
     */
    public void setPosition(int position) {

        if (this.position != position) {
            // check that the position is valid
            this.position = position;
            notifyListeners(new TitleChangeEvent(this));
        }
    }

    /**
     * Returns the horizontal alignment of the title.  The constants LEFT,
     * CENTER and RIGHT (defined in this class) are used.
     *
     * @return the horizontal alignment of the title (LEFT, CENTER or RIGHT).
     */
    public int getHorizontalAlignment() {
        return this.horizontalAlignment;
    }

    /**
     * Sets the horizontal alignment for the title, and notifies any registered
     * listeners of the change.  The constants LEFT, CENTER and RIGHT (defined
     * in this class) can be used to specify the alignment.
     *
     * @param alignment  the new horizontal alignment (LEFT, CENTER or RIGHT).
     */
    public void setHorizontalAlignment(int alignment) {
        if (this.horizontalAlignment != alignment) {
            this.horizontalAlignment = alignment;
            notifyListeners(new TitleChangeEvent(this));
        }
    }

    /**
     * Returns the vertical alignment of the title.  The constants TOP, MIDDLE
     * and BOTTOM (defined in this class) are used.
     *
     * @return the vertical alignment of the title (TOP, MIDDLE or BOTTOM).
     */
    public int getVerticalAlignment() {
        return this.verticalAlignment;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产a级毛片一区| 国产亚洲综合性久久久影院| 精品国产一区二区在线观看| 中文字幕一区二区三区四区不卡| 日韩国产一区二| 99精品视频中文字幕| 精品日韩成人av| 亚洲mv大片欧洲mv大片精品| 岛国精品一区二区| 日韩三级视频在线看| 亚洲高清在线视频| 色综合夜色一区| 欧美激情在线一区二区| 开心九九激情九九欧美日韩精美视频电影| 99精品视频中文字幕| 国产亚洲精品aa午夜观看| 日韩国产精品91| 欧美色综合天天久久综合精品| 中文字幕第一区综合| 国产麻豆精品theporn| 日韩午夜精品电影| 日本aⅴ精品一区二区三区| 色偷偷久久人人79超碰人人澡| 中文字幕精品一区二区三区精品| 国产一区二区三区综合| 日韩欧美在线影院| 蜜臀av性久久久久av蜜臀妖精| 欧美日韩免费一区二区三区| 一区二区三区四区不卡视频| 91一区二区在线观看| 国产精品久久久久精k8| aa级大片欧美| 亚洲老妇xxxxxx| 色婷婷精品大在线视频| 亚洲女女做受ⅹxx高潮| 91福利在线导航| 亚洲第一av色| 欧美肥妇bbw| 日本视频免费一区| 精品国产一区二区三区不卡| 激情综合网天天干| 久久伊人蜜桃av一区二区| 国产毛片精品视频| 国产精品色呦呦| 在线免费亚洲电影| 五月婷婷激情综合网| 欧美肥妇bbw| 国产一区视频网站| 国产精品久久久99| 一本一道久久a久久精品| 午夜视黄欧洲亚洲| 精品国产欧美一区二区| jiyouzz国产精品久久| 一区二区三区精品在线| 欧美日韩国产首页| 国产自产高清不卡| 自拍偷拍国产精品| 欧美丰满少妇xxxbbb| 国产精品亚洲一区二区三区在线| 日本一区二区成人| 欧美日精品一区视频| 国内精品视频一区二区三区八戒| 欧美国产精品专区| 欧美在线免费播放| 国产综合色在线| 亚洲在线中文字幕| 久久久久综合网| 一本色道久久综合亚洲aⅴ蜜桃| 图片区小说区国产精品视频| 久久精品一区二区三区av| 91免费在线视频观看| 日本午夜一区二区| 亚洲婷婷综合色高清在线| 在线播放视频一区| 99精品国产99久久久久久白柏| 亚洲成av人片在线观看| 国产精品久久久久天堂| 日韩欧美的一区| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 51久久夜色精品国产麻豆| 国产乱国产乱300精品| 亚洲综合偷拍欧美一区色| 久久亚洲影视婷婷| 欧美日韩精品一区二区三区蜜桃| 国产91精品精华液一区二区三区 | 久久99热这里只有精品| 国产精品久久久久久久浪潮网站| 国产乱子轮精品视频| 国产精品全国免费观看高清 | 成人短视频下载 | 精品在线播放午夜| 国产真实乱对白精彩久久| 国产一区二区网址| 成人av网在线| 欧美亚洲另类激情小说| 在线综合视频播放| 国产午夜精品久久| 亚洲精品久久久蜜桃| 日韩精品一区第一页| 美女视频黄免费的久久 | 国产91对白在线观看九色| 不卡av在线免费观看| 一本一道波多野结衣一区二区| 欧美又粗又大又爽| 精品国产乱码久久久久久1区2区| 国产性色一区二区| 一区二区三区精品| 韩国精品主播一区二区在线观看 | 国产精品99久久久久久久vr| 91色九色蝌蚪| 91精品黄色片免费大全| 欧美国产一区视频在线观看| 亚洲国产一区在线观看| 国产精品一区二区在线播放| 欧洲精品一区二区| 亚洲精品一区二区三区99| 亚洲欧美日韩系列| 久久99久国产精品黄毛片色诱| 99riav久久精品riav| 日韩亚洲欧美在线| 中文字幕一区二区三区在线播放| 天天综合色天天综合色h| 国产成人午夜精品5599| 欧美日韩国产在线播放网站| 国产网红主播福利一区二区| 亚洲图片欧美一区| 成人免费毛片app| 欧美一区二区三区喷汁尤物| 中文字幕国产精品一区二区| 日韩在线观看一区二区| 99国产精品久久久久久久久久久 | 午夜精品福利一区二区蜜股av | 夜夜嗨av一区二区三区网页 | 免费人成精品欧美精品| 91在线丨porny丨国产| 欧美videos大乳护士334| 夜夜精品浪潮av一区二区三区| 国产精品一区2区| 欧美午夜精品理论片a级按摩| 久久久久久99久久久精品网站| 亚洲一区二区在线视频| 波多野结衣精品在线| 欧美精品一区二区三区蜜桃视频| 亚洲一区二区免费视频| 99久久久无码国产精品| 日本一区二区三区久久久久久久久不| 午夜精品久久久久久久久久久| av电影在线观看一区| 久久久综合视频| 黄色精品一二区| 日韩欧美国产午夜精品| 午夜精品福利久久久| 欧美视频三区在线播放| 亚洲男人的天堂一区二区| 国产激情视频一区二区三区欧美 | 日韩一区二区在线看| 亚洲成人第一页| 在线视频一区二区三| 亚洲男人天堂一区| 99精品一区二区三区| 中文一区二区在线观看| 国产一区二区免费在线| 久久精品综合网| 国产ts人妖一区二区| 欧美激情一区二区三区全黄| 国产激情精品久久久第一区二区| 久久久综合精品| 成人午夜又粗又硬又大| 中文字幕一区二区视频| 91蜜桃视频在线| 亚洲在线中文字幕| 欧美日韩一区高清| 欧美a级理论片| 精品久久久久久久久久久院品网| 久久99久久99小草精品免视看| 欧美大片在线观看一区二区| 精品中文字幕一区二区| 久久久精品中文字幕麻豆发布| 国产精品综合久久| 国产精品美女一区二区| 91一区二区在线观看| 亚洲国产美国国产综合一区二区| 欧美网站大全在线观看| 日本最新不卡在线| 久久精品视频在线免费观看 | 亚洲 欧美综合在线网络| 欧美精品亚洲一区二区在线播放| 日韩精品视频网| 精品88久久久久88久久久| 国产精品99久久久久久久vr| 中文字幕一区日韩精品欧美| 色婷婷综合久久久久中文| 香蕉乱码成人久久天堂爱免费| 欧美一区二区三区免费在线看 | 国产乱理伦片在线观看夜一区| 亚洲国产精品激情在线观看| 在线看不卡av| 久久成人免费网站| 国产精品国产成人国产三级| 欧美日韩中文精品|