⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 swtmultipleaxisdemo1.java

📁 java图形利器
💻 JAVA
字号:
/* =========================================================== * JFreeChart : a free chart library for the Java(tm) platform * =========================================================== * * (C) Copyright 2000-2007, by Object Refinery Limited and Contributors. * * Project Info:  http://www.jfree.org/jfreechart/index.html * * 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., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301,  * USA.   * * [Java is a trademark or registered trademark of Sun Microsystems, Inc.  * in the United States and other countries.] * * ------------------------- * SWTMultipleAxisDemo1.java * ------------------------- * (C) Copyright 2006, 2007, by Object Refinery Limited and Contributors. * * Original Author:  David Gilbert (for Object Refinery Limited); * Contributor(s):   Henry Proudhon; * * Changes * ------- * 23-Aug-2006 : New class (HP); *  */package org.jfree.experimental.chart.swt.demo;import java.awt.Color;import javax.swing.JPanel;import org.eclipse.swt.SWT;import org.eclipse.swt.layout.FillLayout;import org.eclipse.swt.widgets.Display;import org.eclipse.swt.widgets.Shell;import org.jfree.chart.ChartFactory;import org.jfree.chart.ChartPanel;import org.jfree.chart.JFreeChart;import org.jfree.chart.axis.AxisLocation;import org.jfree.chart.axis.NumberAxis;import org.jfree.chart.plot.PlotOrientation;import org.jfree.chart.plot.XYPlot;import org.jfree.chart.renderer.xy.StandardXYItemRenderer;import org.jfree.chart.renderer.xy.XYItemRenderer;import org.jfree.chart.title.TextTitle;import org.jfree.data.time.Minute;import org.jfree.data.time.RegularTimePeriod;import org.jfree.data.time.TimeSeries;import org.jfree.data.time.TimeSeriesCollection;import org.jfree.data.xy.XYDataset;import org.jfree.experimental.chart.swt.ChartComposite;import org.jfree.ui.RectangleInsets;/** * This demo shows a time series chart that has multiple range axes. */public class SWTMultipleAxisDemo1{    /**     * Creates the demo chart.     *      * @return The chart.     */    private static JFreeChart createChart() {        XYDataset dataset1 = createDataset("Series 1", 100.0, new Minute(),                 200);                JFreeChart chart = ChartFactory.createTimeSeriesChart(            "Multiple Axis Demo 3",             "Time of Day",             "Primary Range Axis",            dataset1,             true,             true,             false        );        chart.setBackgroundPaint( Color.white );        chart.setBorderVisible( true );        chart.setBorderPaint( Color.BLACK );        TextTitle subtitle = new TextTitle("Four datasets and four range axes.");          chart.addSubtitle( subtitle );        XYPlot plot = (XYPlot) chart.getPlot();        plot.setOrientation(PlotOrientation.VERTICAL);        plot.setBackgroundPaint(Color.lightGray);        plot.setDomainGridlinePaint(Color.white);        plot.setRangeGridlinePaint(Color.white);                plot.setAxisOffset(new RectangleInsets(5.0, 5.0, 5.0, 5.0));        plot.getRangeAxis().setFixedDimension(15.0);        XYItemRenderer renderer = plot.getRenderer();        renderer.setSeriesPaint(0, Color.black);               // AXIS 2        NumberAxis axis2 = new NumberAxis("Range Axis 2");        axis2.setFixedDimension(10.0);        axis2.setAutoRangeIncludesZero(false);        axis2.setLabelPaint(Color.red);        axis2.setTickLabelPaint(Color.red);        plot.setRangeAxis(1, axis2);        plot.setRangeAxisLocation(1, AxisLocation.BOTTOM_OR_LEFT);        XYDataset dataset2 = createDataset("Series 2", 1000.0, new Minute(),                 170);        plot.setDataset(1, dataset2);        plot.mapDatasetToRangeAxis(1, 1);        XYItemRenderer renderer2 = new StandardXYItemRenderer();        renderer2.setSeriesPaint(0, Color.red);        plot.setRenderer(1, renderer2);                // AXIS 3        NumberAxis axis3 = new NumberAxis("Range Axis 3");        axis3.setLabelPaint(Color.blue);        axis3.setTickLabelPaint(Color.blue);        //axis3.setPositiveArrowVisible( true );        plot.setRangeAxis(2, axis3);        XYDataset dataset3 = createDataset("Series 3", 10000.0, new Minute(),                 170);        plot.setDataset(2, dataset3);        plot.mapDatasetToRangeAxis(2, 2);        XYItemRenderer renderer3 = new StandardXYItemRenderer();        renderer3.setSeriesPaint(0, Color.blue);        plot.setRenderer(2, renderer3);        // AXIS 4                NumberAxis axis4 = new NumberAxis("Range Axis 4");        axis4.setLabelPaint(Color.green);        axis4.setTickLabelPaint(Color.green);        plot.setRangeAxis(3, axis4);                XYDataset dataset4 = createDataset("Series 4", 25.0, new Minute(), 200);        plot.setDataset(3, dataset4);        plot.mapDatasetToRangeAxis(3, 3);                XYItemRenderer renderer4 = new StandardXYItemRenderer();        renderer4.setSeriesPaint(0, Color.green);                plot.setRenderer(3, renderer4);                        return chart;    }        /**     * Creates a sample dataset.     *      * @param name  the dataset name.     * @param base  the starting value.     * @param start  the starting period.     * @param count  the number of values to generate.     *     * @return The dataset.     */    private static XYDataset createDataset(String name, double base,                                            RegularTimePeriod start, int count) {        TimeSeries series = new TimeSeries(name, start.getClass());        RegularTimePeriod period = start;        double value = base;        for (int i = 0; i < count; i++) {            series.add(period, value);                period = period.next();            value = value * (1 + (Math.random() - 0.495) / 10.0);        }        TimeSeriesCollection dataset = new TimeSeriesCollection();        dataset.addSeries(series);        return dataset;    }    /**     * Creates a panel for the demo (used by SuperDemo.java).     *      * @return A panel.     */    public static JPanel createDemoPanel() {        JFreeChart chart = createChart();        return new ChartPanel(chart);    }        /**     * Starting point for the demonstration application.     *     * @param args  ignored.     */    public static void main( String[] args )     {        final JFreeChart chart = createChart();        final Display display = new Display();        Shell shell = new Shell(display);        shell.setSize(600, 300);        shell.setLayout(new FillLayout());        shell.setText("Test for jfreechart running with SWT");        ChartComposite frame = new ChartComposite(shell, SWT.NONE, chart, true);        frame.setDisplayToolTips(false);        frame.setHorizontalAxisTrace(true);        frame.setVerticalAxisTrace(true);        shell.open();        while (!shell.isDisposed()) {            if (!display.readAndDispatch())                display.sleep();        }    }}

⌨️ 快捷键说明

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