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

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

?? polarplot.java

?? jfreechart1.0.1 jsp繪制圖表的開發包
?? JAVA
?? 第 1 頁 / 共 3 頁
字號:
        return this.angleLabelsVisible;
    }
    
    /**
     * Sets the flag that controls whether or not the angle labels are visible,
     * and sends a {@link PlotChangeEvent} to all registered listeners.
     * 
     * @param visible  the flag.
     */
    public void setAngleLabelsVisible(boolean visible) {
        if (this.angleLabelsVisible != visible) {
            this.angleLabelsVisible = visible;
            notifyListeners(new PlotChangeEvent(this));
        }
    }
    
    /**
     * Returns the font used to display the angle labels.
     * 
     * @return A font (never <code>null</code>).
     */
    public Font getAngleLabelFont() {
        return this.angleLabelFont;
    }
    
    /**
     * Sets the font used to display the angle labels and sends a 
     * {@link PlotChangeEvent} to all registered listeners.
     * 
     * @param font  the font (<code>null</code> not permitted).
     */
    public void setAngleLabelFont(Font font) {
        if (font == null) {
            throw new IllegalArgumentException("Null 'font' argument.");   
        }
        this.angleLabelFont = font;
        notifyListeners(new PlotChangeEvent(this));
    }
    
    /**
     * Returns the paint used to display the angle labels.
     * 
     * @return A paint.
     */
    public Paint getAngleLabelPaint() {
        return this.angleLabelPaint;
    }
    
    /**
     * Sets the paint used to display the angle labels and sends a 
     * {@link PlotChangeEvent} to all registered listeners.
     * 
     * @param paint  the paint.
     */
    public void setAngleLabelPaint(Paint paint) {
        this.angleLabelPaint = paint;
        notifyListeners(new PlotChangeEvent(this));
    }
    
    /**
     * Returns <code>true</code> if the angular gridlines are visible, and 
     * <code>false<code> otherwise.
     *
     * @return <code>true</code> or <code>false</code>.
     */
    public boolean isAngleGridlinesVisible() {
        return this.angleGridlinesVisible;
    }
    
    /**
     * Sets the flag that controls whether or not the angular grid-lines are 
     * visible.
     * <p>
     * If the flag value is changed, a {@link PlotChangeEvent} is sent to all 
     * registered listeners.
     *
     * @param visible  the new value of the flag.
     */
    public void setAngleGridlinesVisible(boolean visible) {
        if (this.angleGridlinesVisible != visible) {
            this.angleGridlinesVisible = visible;
            notifyListeners(new PlotChangeEvent(this));
        }
    }
   
    /**
     * Returns the stroke for the grid-lines (if any) plotted against the 
     * angular axis.
     *
     * @return The stroke.
     */
    public Stroke getAngleGridlineStroke() {
        return this.angleGridlineStroke;
    }
    
    /**
     * Sets the stroke for the grid lines plotted against the angular axis.
     * <p>
     * If you set this to <code>null</code>, no grid lines will be drawn.
     *
     * @param stroke  the stroke (<code>null</code> permitted).
     */
    public void setAngleGridlineStroke(Stroke stroke) {
        this.angleGridlineStroke = stroke;
        notifyListeners(new PlotChangeEvent(this));
    }
    
    /**
     * Returns the paint for the grid lines (if any) plotted against the 
     * angular axis.
     *
     * @return The paint.
     */
    public Paint getAngleGridlinePaint() {
        return this.angleGridlinePaint;
    }
   
    /**
     * Sets the paint for the grid lines plotted against the angular axis.
     * <p>
     * If you set this to <code>null</code>, no grid lines will be drawn.
     *
     * @param paint  the paint (<code>null</code> permitted).
     */
    public void setAngleGridlinePaint(Paint paint) {
        this.angleGridlinePaint = paint;
        notifyListeners(new PlotChangeEvent(this));
    }
    
    /**
     * Returns <code>true</code> if the radius axis grid is visible, and 
     * <code>false<code> otherwise.
     *
     * @return <code>true</code> or <code>false</code>.
     */
    public boolean isRadiusGridlinesVisible() {
        return this.radiusGridlinesVisible;
    }
    
    /**
     * Sets the flag that controls whether or not the radius axis grid lines 
     * are visible.
     * <p>
     * If the flag value is changed, a {@link PlotChangeEvent} is sent to all 
     * registered listeners.
     *
     * @param visible  the new value of the flag.
     */
    public void setRadiusGridlinesVisible(boolean visible) {
        if (this.radiusGridlinesVisible != visible) {
            this.radiusGridlinesVisible = visible;
            notifyListeners(new PlotChangeEvent(this));
        }
    }
   
    /**
     * Returns the stroke for the grid lines (if any) plotted against the 
     * radius axis.
     *
     * @return The stroke.
     */
    public Stroke getRadiusGridlineStroke() {
        return this.radiusGridlineStroke;
    }
    
    /**
     * Sets the stroke for the grid lines plotted against the radius axis.
     * <p>
     * If you set this to <code>null</code>, no grid lines will be drawn.
     *
     * @param stroke  the stroke (<code>null</code> permitted).
     */
    public void setRadiusGridlineStroke(Stroke stroke) {
        this.radiusGridlineStroke = stroke;
        notifyListeners(new PlotChangeEvent(this));
    }
    
    /**
     * Returns the paint for the grid lines (if any) plotted against the radius
     * axis.
     *
     * @return The paint.
     */
    public Paint getRadiusGridlinePaint() {
        return this.radiusGridlinePaint;
    }
    
    /**
     * Sets the paint for the grid lines plotted against the radius axis.
     * <p>
     * If you set this to <code>null</code>, no grid lines will be drawn.
     *
     * @param paint  the paint (<code>null</code> permitted).
     */
    public void setRadiusGridlinePaint(Paint paint) {
        this.radiusGridlinePaint = paint;
        notifyListeners(new PlotChangeEvent(this));
    }
    
    /**
     * Draws the plot on a Java 2D graphics device (such as the screen or a 
     * printer).
     * <P>
     * This plot relies on an 
     * {@link org.jfree.chart.renderer.DefaultPolarItemRenderer} to draw each 
     * item in the plot.  This allows the visual representation of the data to 
     * be changed easily.
     * <P>
     * The optional info argument collects information about the rendering of
     * the plot (dimensions, tooltip information etc).  Just pass in 
     * <code>null</code> if you do not need this information.
     *
     * @param g2  the graphics device.
     * @param area  the area within which the plot (including axes and 
     *              labels) should be drawn.
     * @param anchor  the anchor point (<code>null</code> permitted).
     * @param parentState  ignored.
     * @param info  collects chart drawing information (<code>null</code> 
     *              permitted).
     */
    public void draw(Graphics2D g2, 
                     Rectangle2D area, 
                     Point2D anchor,
                     PlotState parentState,
                     PlotRenderingInfo info) {
       
        // if the plot area is too small, just return...
        boolean b1 = (area.getWidth() <= MINIMUM_WIDTH_TO_DRAW);
        boolean b2 = (area.getHeight() <= MINIMUM_HEIGHT_TO_DRAW);
        if (b1 || b2) {
            return;
        }
       
        // record the plot area...
        if (info != null) {
            info.setPlotArea(area);
        }
       
        // adjust the drawing area for the plot insets (if any)...
        RectangleInsets insets = getInsets();
        insets.trim(area);
      
        Rectangle2D dataArea = area;
        if (info != null) {
            info.setDataArea(dataArea);
        }
       
        // draw the plot background and axes...
        drawBackground(g2, dataArea);
        double h = Math.min(
            dataArea.getWidth() / 2.0, dataArea.getHeight() / 2.0
        ) - MARGIN;
        Rectangle2D quadrant = new Rectangle2D.Double(
            dataArea.getCenterX(), dataArea.getCenterY(), h, h
        );
        AxisState state = drawAxis(g2, area, quadrant);
        if (this.renderer != null) {
            Shape originalClip = g2.getClip();
            Composite originalComposite = g2.getComposite();
          
            g2.clip(dataArea);
            g2.setComposite(
                AlphaComposite.getInstance(
                    AlphaComposite.SRC_OVER, getForegroundAlpha()
                )
            );
          
            drawGridlines(g2, dataArea, this.angleTicks, state.getTicks());
          
            // draw...
            render(g2, dataArea, info);
          
            g2.setClip(originalClip);
            g2.setComposite(originalComposite);
        }
        drawOutline(g2, dataArea);
        drawCornerTextItems(g2, dataArea);
    }
   
    /**
     * Draws the corner text items.
     * 
     * @param g2  the drawing surface.
     * @param area  the area.
     */
    protected void drawCornerTextItems(Graphics2D g2, Rectangle2D area) {
        if (this.cornerTextItems.isEmpty()) {
            return;
        }
       
        g2.setColor(Color.black);
        double width = 0.0;
        double height = 0.0;
        for (Iterator it = this.cornerTextItems.iterator(); it.hasNext();) {
            String msg = (String) it.next();
            FontMetrics fm = g2.getFontMetrics();
            Rectangle2D bounds = TextUtilities.getTextBounds(msg, g2, fm);
            width = Math.max(width, bounds.getWidth());
            height += bounds.getHeight();
        }
        
        double xadj = ANNOTATION_MARGIN * 2.0;
        double yadj = ANNOTATION_MARGIN;
        width += xadj;
        height += yadj;
       
        double x = area.getMaxX() - width;
        double y = area.getMaxY() - height;
        g2.drawRect((int) x, (int) y, (int) width, (int) height);
        x += ANNOTATION_MARGIN;
        for (Iterator it = this.cornerTextItems.iterator(); it.hasNext();) {
            String msg = (String) it.next();
            Rectangle2D bounds = TextUtilities.getTextBounds(
                msg, g2, g2.getFontMetrics()
            );
            y += bounds.getHeight();
            g2.drawString(msg, (int) x, (int) y);
        }
    }
   
    /**
     * A utility method for drawing the axes.
     *
     * @param g2  the graphics device.
     * @param plotArea  the plot area.
     * @param dataArea  the data area.
     * 
     * @return A map containing the axis states.
     */
    protected AxisState drawAxis(Graphics2D g2, Rectangle2D plotArea, 
                                 Rectangle2D dataArea) {
        return this.axis.draw(
            g2, dataArea.getMinY(), plotArea, dataArea, RectangleEdge.TOP, null
        );
    }
   
    /**
     * Draws a representation of the data within the dataArea region, using the
     * current m_Renderer.
     *
     * @param g2  the graphics device.
     * @param dataArea  the region in which the data is to be drawn.
     * @param info  an optional object for collection dimension 
     *              information (<code>null</code> permitted).
     */
    protected void render(Graphics2D g2,
                       Rectangle2D dataArea,
                       PlotRenderingInfo info) {
      
        // now get the data and plot it (the visual representation will depend
        // on the m_Renderer that has been set)...
        if (!DatasetUtilities.isEmptyOrNull(this.dataset)) {
            int seriesCount = this.dataset.getSeriesCount();
            for (int series = 0; series < seriesCount; series++) {
                this.renderer.drawSeries(
                    g2, dataArea, info, this, this.dataset, series
                );
            }
        }
        else {
            drawNoDataMessage(g2, dataArea);
        }
    }
   
    /**
     * Draws the gridlines for the plot, if they are visible.
     *
     * @param g2  the graphics device.
     * @param dataArea  the data area.
     * @param angularTicks  the ticks for the angular axis.
     * @param radialTicks  the ticks for the radial axis.
     */
    protected void drawGridlines(Graphics2D g2, Rectangle2D dataArea, 
                                 List angularTicks, List radialTicks) {

        // no renderer, no gridlines...
        if (this.renderer == null) {
            return;
        }
       
        // draw the domain grid lines, if any...
        if (isAngleGridlinesVisible()) {
            Stroke gridStroke = getAngleGridlineStroke();
            Paint gridPaint = getAngleGridlinePaint();
            if ((gridStroke != null) && (gridPaint != null)) {
                this.renderer.drawAngularGridLines(
                    g2, this, angularTicks, dataArea
                );
            }
        }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一二三四在线| 玖玖九九国产精品| 国模无码大尺度一区二区三区| 国产91对白在线观看九色| 在线视频欧美区| 久久一区二区三区国产精品| 婷婷丁香久久五月婷婷| 99久久精品免费看| 国产三级一区二区三区| 青青草国产成人av片免费| 在线亚洲+欧美+日本专区| 国产精品国产三级国产专播品爱网| 石原莉奈在线亚洲三区| 在线观看91视频| 中文字幕在线观看不卡视频| 国内精品视频666| 精品日韩成人av| 久久99这里只有精品| 777亚洲妇女| 日韩成人免费电影| 这里只有精品视频在线观看| 亚洲第一福利一区| 欧美综合天天夜夜久久| 亚洲猫色日本管| 91丝袜呻吟高潮美腿白嫩在线观看| 久久一区二区三区四区| 国产风韵犹存在线视精品| 欧美videossexotv100| 美脚の诱脚舐め脚责91 | 另类调教123区| 欧美日韩国产电影| 日韩电影在线一区二区| 在线播放中文一区| 奇米精品一区二区三区在线观看| 欧美高清性hdvideosex| 日韩国产一二三区| 日韩一区二区精品葵司在线| 美女视频一区在线观看| 日韩美女一区二区三区四区| 精品一区二区免费| 国产日韩欧美高清| 91麻豆国产自产在线观看| 亚洲人妖av一区二区| 日本乱人伦一区| 成人免费视频播放| 《视频一区视频二区| 色综合中文字幕国产| 亚洲素人一区二区| 欧美日韩一级二级三级| 老司机精品视频一区二区三区| 欧美精品一区在线观看| 国产不卡免费视频| 亚洲精品国产a| 欧美一区2区视频在线观看| 国产一区二区影院| 亚洲人吸女人奶水| 日韩欧美亚洲一区二区| 成人妖精视频yjsp地址| 亚洲一区二区三区国产| 精品欧美久久久| av影院午夜一区| 性做久久久久久免费观看 | 亚洲黄色尤物视频| 日韩丝袜情趣美女图片| 成人中文字幕合集| 亚洲国产精品嫩草影院| 久久在线观看免费| 欧美日精品一区视频| 国产一区啦啦啦在线观看| 日韩伦理av电影| 日韩网站在线看片你懂的| 99久久国产综合精品色伊| 奇米综合一区二区三区精品视频| 国产精品美女久久久久av爽李琼| 欧美日韩www| 国产91精品久久久久久久网曝门| 亚洲一二三四在线观看| 国产午夜精品美女毛片视频| 欧美日韩久久久| 成人av在线一区二区| 日韩高清在线一区| 亚洲男女一区二区三区| 日本一区二区免费在线 | 欧美日本一道本在线视频| 国产福利一区二区| 美国一区二区三区在线播放| 亚洲六月丁香色婷婷综合久久| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 亚瑟在线精品视频| 最新中文字幕一区二区三区| 26uuuu精品一区二区| 欧美日韩高清在线播放| 色综合一区二区三区| 国产精品亚洲成人| 免费成人在线视频观看| 午夜激情久久久| 一区二区国产视频| 1024国产精品| 国产欧美日本一区视频| 免费高清视频精品| 天堂精品中文字幕在线| 一区二区三区在线看| 1024成人网| 亚洲精品视频在线观看免费| 国产精品久久夜| 国产精品美女久久久久av爽李琼| 久久久国产精品麻豆| 久久日韩粉嫩一区二区三区| 欧美tk—视频vk| 精品久久久久久久一区二区蜜臀| 91精品欧美福利在线观看| 欧美日韩小视频| 欧美日韩三级一区二区| 欧美日韩三级一区| 制服丝袜亚洲色图| 欧美理论片在线| 91精品综合久久久久久| 日韩一区二区影院| 日韩美一区二区三区| 久久久精品影视| 国产欧美一区二区精品久导航| 2021中文字幕一区亚洲| 国产亚洲婷婷免费| 国产精品激情偷乱一区二区∴| 亚洲色图欧美激情| 亚洲午夜精品在线| 日本视频一区二区三区| 久久精品国产99久久6| 国产酒店精品激情| yourporn久久国产精品| 色婷婷久久一区二区三区麻豆| 91官网在线观看| 91精品免费观看| 国产日产欧美精品一区二区三区| 国产精品五月天| 亚洲综合区在线| 毛片av一区二区三区| 成人精品国产免费网站| 91蜜桃婷婷狠狠久久综合9色| 欧美三级日本三级少妇99| 欧美一区二区三区在线观看视频 | 日韩欧美一级二级三级久久久| 久久久亚洲午夜电影| 亚洲欧洲99久久| 日韩国产精品久久| 国产99久久久国产精品潘金网站| 一本到不卡精品视频在线观看| 欧美日本免费一区二区三区| 久久综合成人精品亚洲另类欧美 | 一片黄亚洲嫩模| 精品一区二区三区在线播放视频| 成人毛片老司机大片| 欧美久久久久免费| 国产精品久久午夜| 日韩电影免费在线看| 99精品视频在线免费观看| 欧美猛男男办公室激情| 中文字幕乱码日本亚洲一区二区| 亚洲一区二区三区影院| 国产精品小仙女| 91精品蜜臀在线一区尤物| 国产精品大尺度| 欧美精品日韩一本| 国产精品国产三级国产a| 青青草国产精品亚洲专区无| 91浏览器在线视频| 国产色产综合产在线视频| 奇米在线7777在线精品| 日本道色综合久久| 亚洲国产精品av| 六月丁香婷婷久久| 欧美日韩精品专区| 亚洲视频一区在线| 国产aⅴ综合色| 2019国产精品| 视频一区二区中文字幕| 91久久免费观看| 国产精品传媒入口麻豆| 国产精品亚洲人在线观看| 欧美一区三区四区| 亚洲动漫第一页| 91福利国产精品| 中文字幕在线不卡视频| 国产精品亚洲专一区二区三区| 日韩欧美中文字幕公布| 日本美女视频一区二区| 欧美视频一区在线| 夜夜精品浪潮av一区二区三区| 99国内精品久久| 自拍偷自拍亚洲精品播放| 99精品在线观看视频| 中文字幕亚洲精品在线观看| 国产成人精品亚洲午夜麻豆| 2017欧美狠狠色| 国产成人精品1024| 亚洲国产精品传媒在线观看| 国产成人鲁色资源国产91色综| www亚洲一区| 国产成人在线影院 | 精品日产卡一卡二卡麻豆|