categoryplottests.java

来自「JfreeChart 常用图表例子」· Java 代码 · 共 643 行 · 第 1/2 页

JAVA
643
字号
        assertFalse(plot1.equals(plot2));        plot2.addRangeMarker(new ValueMarker(4.0), Layer.FOREGROUND);        assertTrue(plot1.equals(plot2));                plot1.addRangeMarker(new ValueMarker(5.0), Layer.BACKGROUND);        assertFalse(plot1.equals(plot2));        plot2.addRangeMarker(new ValueMarker(5.0), Layer.BACKGROUND);        assertTrue(plot1.equals(plot2));                // foreground range markers...        plot1.addRangeMarker(1, new ValueMarker(4.0), Layer.FOREGROUND);        assertFalse(plot1.equals(plot2));        plot2.addRangeMarker(1, new ValueMarker(4.0), Layer.FOREGROUND);        assertTrue(plot1.equals(plot2));                // background range markers...        plot1.addRangeMarker(1, new ValueMarker(5.0), Layer.BACKGROUND);        assertFalse(plot1.equals(plot2));        plot2.addRangeMarker(1, new ValueMarker(5.0), Layer.BACKGROUND);        assertTrue(plot1.equals(plot2));        // annotations        plot1.addAnnotation(            new CategoryTextAnnotation("Text", "Category", 43.0)        );        assertFalse(plot1.equals(plot2));        plot2.addAnnotation(            new CategoryTextAnnotation("Text", "Category", 43.0)        );        assertTrue(plot1.equals(plot2));                // weight        plot1.setWeight(3);        assertFalse(plot1.equals(plot2));        plot2.setWeight(3);        assertTrue(plot1.equals(plot2));                // fixed domain axis space...        plot1.setFixedDomainAxisSpace(new AxisSpace());        assertFalse(plot1.equals(plot2));        plot2.setFixedDomainAxisSpace(new AxisSpace());        assertTrue(plot1.equals(plot2));                // fixed range axis space...        plot1.setFixedRangeAxisSpace(new AxisSpace());        assertFalse(plot1.equals(plot2));        plot2.setFixedRangeAxisSpace(new AxisSpace());        assertTrue(plot1.equals(plot2));                    }    /**     * Confirm that cloning works.     */    public void testCloning() {        CategoryPlot p1 = new CategoryPlot();        CategoryPlot p2 = null;        try {            p2 = (CategoryPlot) p1.clone();        }        catch (CloneNotSupportedException e) {            e.printStackTrace();            System.err.println("Failed to clone.");        }        assertTrue(p1 != p2);        assertTrue(p1.getClass() == p2.getClass());        assertTrue(p1.equals(p2));    }    /**     * Serialize an instance, restore it, and check for equality.     */    public void testSerialization() {        DefaultCategoryDataset dataset = new DefaultCategoryDataset();        CategoryAxis domainAxis = new CategoryAxis("Domain");        NumberAxis rangeAxis = new NumberAxis("Range");        BarRenderer renderer = new BarRenderer();        CategoryPlot p1 = new CategoryPlot(            dataset, domainAxis, rangeAxis, renderer        );        p1.setOrientation(PlotOrientation.HORIZONTAL);        CategoryPlot 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 = (CategoryPlot) in.readObject();            in.close();        }        catch (Exception e) {            e.printStackTrace();        }        assertTrue(p1.equals(p2));    }    /**     * Serialize an instance, restore it, and check for equality.     */    public void testSerialization2() {        DefaultCategoryDataset data = new DefaultCategoryDataset();        CategoryAxis domainAxis = new CategoryAxis("Domain");        NumberAxis rangeAxis = new NumberAxis("Range");        BarRenderer renderer = new BarRenderer();        CategoryPlot p1 = new CategoryPlot(            data, domainAxis, rangeAxis, renderer        );        p1.setOrientation(PlotOrientation.VERTICAL);        CategoryPlot 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 = (CategoryPlot) in.readObject();            in.close();        }        catch (Exception e) {            fail(e.toString());        }        assertEquals(p1, p2);    }    /**     * Serialize an instance, restore it, and check for equality.     */    public void testSerialization3() {        DefaultCategoryDataset dataset = new DefaultCategoryDataset();        JFreeChart chart = ChartFactory.createBarChart(            "Test Chart",            "Category Axis",            "Value Axis",            dataset,            PlotOrientation.VERTICAL,            true,            true,            false        );        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());        }        // now check that the chart is usable...        boolean passed = true;        try {            chart2.createBufferedImage(300, 200);        }        catch (Exception e) {            passed = false;              e.printStackTrace();                    }        assertTrue(passed);    }        /**     * This test ensures that a plot with markers is serialized correctly.     */    public void testSerialization4() {        DefaultCategoryDataset dataset = new DefaultCategoryDataset();        JFreeChart chart = ChartFactory.createBarChart(            "Test Chart",            "Category Axis",            "Value Axis",            dataset,            PlotOrientation.VERTICAL,            true,            true,            false        );        CategoryPlot plot = (CategoryPlot) chart.getPlot();        plot.addRangeMarker(new ValueMarker(1.1), Layer.FOREGROUND);        plot.addRangeMarker(new IntervalMarker(2.2, 3.3), 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);                // now check that the chart is usable...        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() {        DefaultCategoryDataset dataset1 = new DefaultCategoryDataset();        CategoryAxis domainAxis1 = new CategoryAxis("Domain 1");        NumberAxis rangeAxis1 = new NumberAxis("Range 1");        BarRenderer renderer1 = new BarRenderer();        CategoryPlot p1 = new CategoryPlot(dataset1, domainAxis1, rangeAxis1,                 renderer1);        CategoryAxis domainAxis2 = new CategoryAxis("Domain 2");        NumberAxis rangeAxis2 = new NumberAxis("Range 2");        BarRenderer renderer2 = new BarRenderer();        DefaultCategoryDataset dataset2 = new DefaultCategoryDataset();        p1.setDataset(1, dataset2);        p1.setDomainAxis(1, domainAxis2);        p1.setRangeAxis(1, rangeAxis2);        p1.setRenderer(1, renderer2);        CategoryPlot 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 = (CategoryPlot) 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...        CategoryAxis domainAxisA = p2.getDomainAxis(0);        NumberAxis rangeAxisA = (NumberAxis) p2.getRangeAxis(0);        DefaultCategoryDataset datasetA             = (DefaultCategoryDataset) p2.getDataset(0);        BarRenderer rendererA = (BarRenderer) p2.getRenderer(0);        CategoryAxis domainAxisB = p2.getDomainAxis(1);        NumberAxis rangeAxisB = (NumberAxis) p2.getRangeAxis(1);        DefaultCategoryDataset datasetB             = (DefaultCategoryDataset) p2.getDataset(1);        BarRenderer rendererB  = (BarRenderer) 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));    }    /**     * A test for a bug where setting the renderer doesn't register the plot     * as a RendererChangeListener.     */    public void testSetRenderer() {        CategoryPlot plot = new CategoryPlot();        CategoryItemRenderer renderer = new LineAndShapeRenderer();        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);    }        /**     * A test for bug report 1169972.     */    public void test1169972() {        CategoryPlot plot = new CategoryPlot(null, null, null, null);        plot.setDomainAxis(new CategoryAxis("C"));        plot.setRangeAxis(new NumberAxis("Y"));        plot.setRenderer(new BarRenderer());        plot.setDataset(new DefaultCategoryDataset());        assertTrue(plot != null);    }}

⌨️ 快捷键说明

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