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

📄 xyplottests.java

📁 java图形利器
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
        JFreeChart chart = ChartFactory.createXYLineChart(            "Test Chart",            "Domain Axis",            "Range Axis",            dataset,            PlotOrientation.VERTICAL,            true,            true,            false        );        XYPlot plot = (XYPlot) chart.getPlot();        plot.addDomainMarker(new ValueMarker(1.0), Layer.FOREGROUND);        plot.addDomainMarker(new IntervalMarker(2.0, 3.0), Layer.BACKGROUND);        plot.addRangeMarker(new ValueMarker(4.0), Layer.FOREGROUND);        plot.addRangeMarker(new IntervalMarker(5.0, 6.0), Layer.BACKGROUND);        JFreeChart chart2 = null;                // serialize and deserialize the chart....        try {            ByteArrayOutputStream buffer = new ByteArrayOutputStream();            ObjectOutput out = new ObjectOutputStream(buffer);            out.writeObject(chart);            out.close();            ObjectInput in = new ObjectInputStream(                new ByteArrayInputStream(buffer.toByteArray())            );            chart2 = (JFreeChart) in.readObject();            in.close();        }        catch (Exception e) {            fail(e.toString());        }        assertEquals(chart, chart2);        boolean passed = true;        try {            chart2.createBufferedImage(300, 200);        }        catch (Exception e) {            passed = false;              e.printStackTrace();                    }        assertTrue(passed);    }        /**     * Tests a bug where the plot is no longer registered as a listener     * with the dataset(s) and axes after deserialization.  See patch 1209475     * at SourceForge.     */    public void testSerialization5() {        XYSeriesCollection dataset1 = new XYSeriesCollection();        NumberAxis domainAxis1 = new NumberAxis("Domain 1");        NumberAxis rangeAxis1 = new NumberAxis("Range 1");        StandardXYItemRenderer renderer1 = new StandardXYItemRenderer();        XYPlot p1 = new XYPlot(dataset1, domainAxis1, rangeAxis1, renderer1);        NumberAxis domainAxis2 = new NumberAxis("Domain 2");        NumberAxis rangeAxis2 = new NumberAxis("Range 2");        StandardXYItemRenderer renderer2 = new StandardXYItemRenderer();        XYSeriesCollection dataset2 = new XYSeriesCollection();        p1.setDataset(1, dataset2);        p1.setDomainAxis(1, domainAxis2);        p1.setRangeAxis(1, rangeAxis2);        p1.setRenderer(1, renderer2);        XYPlot p2 = null;        try {            ByteArrayOutputStream buffer = new ByteArrayOutputStream();            ObjectOutput out = new ObjectOutputStream(buffer);            out.writeObject(p1);            out.close();            ObjectInput in = new ObjectInputStream(                new ByteArrayInputStream(buffer.toByteArray())            );            p2 = (XYPlot) in.readObject();            in.close();        }        catch (Exception e) {            fail(e.toString());        }        assertEquals(p1, p2);                // now check that all datasets, renderers and axes are being listened         // too...        NumberAxis domainAxisA = (NumberAxis) p2.getDomainAxis(0);        NumberAxis rangeAxisA = (NumberAxis) p2.getRangeAxis(0);        XYSeriesCollection datasetA = (XYSeriesCollection) p2.getDataset(0);        StandardXYItemRenderer rendererA             = (StandardXYItemRenderer) p2.getRenderer(0);        NumberAxis domainAxisB = (NumberAxis) p2.getDomainAxis(1);        NumberAxis rangeAxisB = (NumberAxis) p2.getRangeAxis(1);        XYSeriesCollection datasetB = (XYSeriesCollection) p2.getDataset(1);        StandardXYItemRenderer rendererB             = (StandardXYItemRenderer) p2.getRenderer(1);        assertTrue(datasetA.hasListener(p2));        assertTrue(domainAxisA.hasListener(p2));        assertTrue(rangeAxisA.hasListener(p2));        assertTrue(rendererA.hasListener(p2));        assertTrue(datasetB.hasListener(p2));        assertTrue(domainAxisB.hasListener(p2));        assertTrue(rangeAxisB.hasListener(p2));        assertTrue(rendererB.hasListener(p2));    }    /**     * Some checks for the getRendererForDataset() method.     */    public void testGetRendererForDataset() {        XYDataset d0 = new XYSeriesCollection();        XYDataset d1 = new XYSeriesCollection();        XYDataset d2 = new XYSeriesCollection();        XYDataset d3 = new XYSeriesCollection();  // not used by plot        XYItemRenderer r0 = new XYLineAndShapeRenderer();        XYItemRenderer r2 = new XYLineAndShapeRenderer();        XYPlot plot = new XYPlot();        plot.setDataset(0, d0);        plot.setDataset(1, d1);        plot.setDataset(2, d2);        plot.setRenderer(0, r0);        // no renderer 1        plot.setRenderer(2, r2);        assertEquals(r0, plot.getRendererForDataset(d0));        assertEquals(r0, plot.getRendererForDataset(d1));        assertEquals(r2, plot.getRendererForDataset(d2));        assertEquals(null, plot.getRendererForDataset(d3));        assertEquals(null, plot.getRendererForDataset(null));    }    /**     * Some checks for the getLegendItems() method.     */    public void testGetLegendItems() {        // check the case where there is a secondary dataset that doesn't         // have a renderer (i.e. falls back to renderer 0)        XYDataset d0 = createDataset1();        XYDataset d1 = createDataset2();        XYItemRenderer r0 = new XYLineAndShapeRenderer();        XYPlot plot = new XYPlot();        plot.setDataset(0, d0);        plot.setDataset(1, d1);        plot.setRenderer(0, r0);        LegendItemCollection items = plot.getLegendItems();        assertEquals(2, items.getItemCount());    }        /**     * Creates a sample dataset.     *     * @return Series 1.     */    private IntervalXYDataset createDataset1() {        // create dataset 1...        TimeSeries series1 = new TimeSeries("Series 1", Day.class);        series1.add(new Day(1, MonthConstants.MARCH, 2002), 12353.3);        series1.add(new Day(2, MonthConstants.MARCH, 2002), 13734.4);        series1.add(new Day(3, MonthConstants.MARCH, 2002), 14525.3);        series1.add(new Day(4, MonthConstants.MARCH, 2002), 13984.3);        series1.add(new Day(5, MonthConstants.MARCH, 2002), 12999.4);        series1.add(new Day(6, MonthConstants.MARCH, 2002), 14274.3);        series1.add(new Day(7, MonthConstants.MARCH, 2002), 15943.5);        series1.add(new Day(8, MonthConstants.MARCH, 2002), 14845.3);        series1.add(new Day(9, MonthConstants.MARCH, 2002), 14645.4);        series1.add(new Day(10, MonthConstants.MARCH, 2002), 16234.6);        series1.add(new Day(11, MonthConstants.MARCH, 2002), 17232.3);        series1.add(new Day(12, MonthConstants.MARCH, 2002), 14232.2);        series1.add(new Day(13, MonthConstants.MARCH, 2002), 13102.2);        series1.add(new Day(14, MonthConstants.MARCH, 2002), 14230.2);        series1.add(new Day(15, MonthConstants.MARCH, 2002), 11235.2);        TimeSeriesCollection collection = new TimeSeriesCollection(series1);        return collection;    }    /**     * Creates a sample dataset.     *     * @return A sample dataset.     */    private XYDataset createDataset2() {        // create dataset 1...        XYSeries series = new XYSeries("Series 2");        XYSeriesCollection collection = new XYSeriesCollection(series);        return collection;    }        /**     * A test for a bug where setting the renderer doesn't register the plot     * as a RendererChangeListener.     */    public void testSetRenderer() {        XYPlot plot = new XYPlot();        XYItemRenderer renderer = new XYLineAndShapeRenderer();        plot.setRenderer(renderer);        // now make a change to the renderer and see if it triggers a plot        // change event...        MyPlotChangeListener listener = new MyPlotChangeListener();        plot.addChangeListener(listener);        renderer.setSeriesPaint(0, Color.black);        assertTrue(listener.getEvent() != null);    }        /**     * Some checks for the removeAnnotation() method.     */    public void testRemoveAnnotation() {        XYPlot plot = new XYPlot();        XYTextAnnotation a1 = new XYTextAnnotation("X", 1.0, 2.0);        XYTextAnnotation a2 = new XYTextAnnotation("X", 3.0, 4.0);        XYTextAnnotation a3 = new XYTextAnnotation("X", 1.0, 2.0);        plot.addAnnotation(a1);        plot.addAnnotation(a2);        plot.addAnnotation(a3);        plot.removeAnnotation(a2);        XYTextAnnotation x = (XYTextAnnotation) plot.getAnnotations().get(0);        assertEquals(x, a1);                // now remove a3, but since a3.equals(a1), this will in fact remove         // a1...        assertTrue(a1.equals(a3));        plot.removeAnnotation(a3);  // actually removes a1        x = (XYTextAnnotation) plot.getAnnotations().get(0);        assertEquals(x, a3);     }        /**     * Some tests for the addDomainMarker() method(s).     */    public void testAddDomainMarker() {        XYPlot plot = new XYPlot();        Marker m = new ValueMarker(1.0);        plot.addDomainMarker(m);        List listeners = Arrays.asList(m.getListeners(                MarkerChangeListener.class));        assertTrue(listeners.contains(plot));        plot.clearDomainMarkers();        listeners = Arrays.asList(m.getListeners(MarkerChangeListener.class));        assertFalse(listeners.contains(plot));    }            /**     * Some tests for the addRangeMarker() method(s).     */    public void testAddRangeMarker() {        XYPlot plot = new XYPlot();        Marker m = new ValueMarker(1.0);        plot.addRangeMarker(m);        List listeners = Arrays.asList(m.getListeners(                MarkerChangeListener.class));        assertTrue(listeners.contains(plot));        plot.clearRangeMarkers();        listeners = Arrays.asList(m.getListeners(MarkerChangeListener.class));        assertFalse(listeners.contains(plot));    }        /**     * A test for bug 1654215 (where a renderer is added to the plot without     * a corresponding dataset and it throws an exception at drawing time).     */    public void test1654215() {        DefaultXYDataset dataset = new DefaultXYDataset();        JFreeChart chart = ChartFactory.createXYLineChart("Title", "X", "Y",                dataset, PlotOrientation.VERTICAL, true, false, false);        XYPlot plot = (XYPlot) chart.getPlot();        plot.setRenderer(1, new XYLineAndShapeRenderer());        boolean success = false;        try {            BufferedImage image = new BufferedImage(200 , 100,                     BufferedImage.TYPE_INT_RGB);            Graphics2D g2 = image.createGraphics();            chart.draw(g2, new Rectangle2D.Double(0, 0, 200, 100), null, null);            g2.dispose();            success = true;        }        catch (Exception e) {            e.printStackTrace();            success = false;        }        assertTrue(success);    }    /**     * A test for drawing range grid lines when there is no primary renderer.     * In 1.0.4, this is throwing a NullPointerException.     */    public void testDrawRangeGridlines() {        DefaultXYDataset dataset = new DefaultXYDataset();        JFreeChart chart = ChartFactory.createXYLineChart("Title", "X", "Y",                dataset, PlotOrientation.VERTICAL, true, false, false);        XYPlot plot = (XYPlot) chart.getPlot();        plot.setRenderer(null);        boolean success = false;        try {            BufferedImage image = new BufferedImage(200 , 100,                     BufferedImage.TYPE_INT_RGB);            Graphics2D g2 = image.createGraphics();            chart.draw(g2, new Rectangle2D.Double(0, 0, 200, 100), null, null);            g2.dispose();            success = true;        }        catch (Exception e) {            e.printStackTrace();            success = false;        }        assertTrue(success);    }    /**     * A test for drawing a plot where a series has zero items.  With     * JFreeChart 1.0.5+cvs this was throwing an exception at one point.     */    public void testDrawSeriesWithZeroItems() {        DefaultXYDataset dataset = new DefaultXYDataset();        dataset.addSeries("Series 1", new double[][] {{1.0, 2.0}, {3.0, 4.0}});        dataset.addSeries("Series 2", new double[][] {{}, {}});        JFreeChart chart = ChartFactory.createXYLineChart("Title", "X", "Y",                dataset, PlotOrientation.VERTICAL, true, false, false);        boolean success = false;        try {            BufferedImage image = new BufferedImage(200 , 100,                     BufferedImage.TYPE_INT_RGB);            Graphics2D g2 = image.createGraphics();            chart.draw(g2, new Rectangle2D.Double(0, 0, 200, 100), null, null);            g2.dispose();            success = true;        }        catch (Exception e) {            e.printStackTrace();            success = false;        }        assertTrue(success);    }}

⌨️ 快捷键说明

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