superdemo.java

来自「在软件开发中用来绘制各种图表的源码」· Java 代码 · 共 1,115 行 · 第 1/3 页

JAVA
1,115
字号
            new DemoDescription(
                "demo.CombinedXYPlotDemo3", 
                "CombinedXYPlotDemo3.java"
            )
        );
        DefaultMutableTreeNode n7 = new DefaultMutableTreeNode(
            new DemoDescription(
                "demo.CombinedXYPlotDemo4", 
                "CombinedXYPlotDemo4.java"
            )
        );

        root.add(n1);
        root.add(n2);
        root.add(n3);
        root.add(n4);
        root.add(n5);
        root.add(n6);
        root.add(n7);
        
        return root;
    }

    private MutableTreeNode createGanttChartsNode() {
        DefaultMutableTreeNode root = new DefaultMutableTreeNode(
            "Gantt Charts"
        );

        DefaultMutableTreeNode n1 = new DefaultMutableTreeNode(
            new DemoDescription("demo.GanttDemo1", "GanttDemo1.java")
        );
        DefaultMutableTreeNode n2 = new DefaultMutableTreeNode(
            new DemoDescription("demo.GanttDemo2", "GanttDemo2.java")
        );
        
        root.add(n1);
        root.add(n2);
        
        return root;
    }
    
    /**
     * Creates the subtree containing the miscellaneous chart types.
     * 
     * @return A subtree.
     */
    private MutableTreeNode createMiscellaneousChartsNode() {
        DefaultMutableTreeNode root = new DefaultMutableTreeNode(
            "Miscellaneous");

        DefaultMutableTreeNode n0 = new DefaultMutableTreeNode(
                new DemoDescription("demo.BoxAndWhiskerChartDemo1", 
                "BoxAndWhiskerChartDemo1.java"));

        DefaultMutableTreeNode n1 = new DefaultMutableTreeNode(
                new DemoDescription("demo.BubbleChartDemo1", 
                "BubbleChartDemo1.java"));
        
        DefaultMutableTreeNode n2 = new DefaultMutableTreeNode(
                new DemoDescription("demo.BubbleChartDemo2", 
                "BubbleChartDemo2.java"));

        DefaultMutableTreeNode n3 = new DefaultMutableTreeNode(
            new DemoDescription(
                "demo.CategoryStepChartDemo1", "CategoryStepChartDemo1.java"
            )
        );
        DefaultMutableTreeNode n4 = new DefaultMutableTreeNode(
            new DemoDescription("demo.CompassDemo1", "CompassDemo1.java")
        );
        DefaultMutableTreeNode n5 = new DefaultMutableTreeNode(
            new DemoDescription(
                "demo.CompassFormatDemo1", "CompassFormatDemo1.java"
            )
        );
        DefaultMutableTreeNode n6 = new DefaultMutableTreeNode(
            new DemoDescription(
                "demo.CompassFormatDemo2", "CompassFormatDemo2.java"
            )
        );
        DefaultMutableTreeNode n7 = new DefaultMutableTreeNode(
            new DemoDescription(
                "demo.DifferenceChartDemo1", "DifferenceChartDemo1.java"
            )
        );
        DefaultMutableTreeNode n8 = new DefaultMutableTreeNode(
            new DemoDescription(
                "demo.DifferenceChartDemo2", "DifferenceChartDemo2.java"
            )
        );
        DefaultMutableTreeNode n9 = new DefaultMutableTreeNode(
            new DemoDescription(
                "demo.EventFrequencyDemo1", "EventFrequencyDemo1.java"
            )
        );

        DefaultMutableTreeNode n10 = new DefaultMutableTreeNode(
            new DemoDescription("demo.HideSeriesDemo1", "HideSeriesDemo1.java")
        );
        
        DefaultMutableTreeNode n11 = new DefaultMutableTreeNode(
            new DemoDescription(
                "demo.OverlaidBarChartDemo1", "OverlaidBarChartDemo1.java"
            )
        );
        
        DefaultMutableTreeNode n12 = new DefaultMutableTreeNode(
            new DemoDescription(
                "demo.OverlaidBarChartDemo2", "OverlaidBarChartDemo2.java"
            )
        );
        
        DefaultMutableTreeNode n13 = new DefaultMutableTreeNode(
            new DemoDescription(
                "demo.SpiderWebChartDemo1", "SpiderWebChartDemo1.java"
            )
        );
        DefaultMutableTreeNode n14 = new DefaultMutableTreeNode(
            new DemoDescription(
                "demo.SymbolAxisDemo1", "SymbolAxisDemo1.java"
            )
        );
        DefaultMutableTreeNode n15 = new DefaultMutableTreeNode(
            new DemoDescription("demo.PolarChartDemo1", "PolarChartDemo1.java")
        );
        DefaultMutableTreeNode n16 = new DefaultMutableTreeNode(
                new DemoDescription("demo.YIntervalChartDemo1", 
                "YIntervalChartDemo1.java"));
        
        root.add(createCrosshairChartsNode());
        root.add(createItemLabelsNode());
        root.add(createLegendNode());
        root.add(createMarkersNode());
        root.add(createOrientationNode());
        root.add(n0);
        root.add(n1);
        root.add(n2);
        root.add(n3);
        root.add(n4);
        root.add(n5);
        root.add(n6);
        root.add(n7);
        root.add(n8);
        root.add(n9);
        root.add(n10);
        root.add(n11);
        root.add(n12);
        root.add(n13);
        root.add(n14);
        root.add(n15);
        root.add(n16);
        
        return root;
    }
    
    private MutableTreeNode createCrosshairChartsNode() {
        DefaultMutableTreeNode root = new DefaultMutableTreeNode("Crosshairs");

        DefaultMutableTreeNode n1 = new DefaultMutableTreeNode(
                new DemoDescription("demo.CrosshairDemo1", 
                "CrosshairDemo1.java"));
        DefaultMutableTreeNode n2 = new DefaultMutableTreeNode(
                new DemoDescription("demo.CrosshairDemo2", 
                "CrosshairDemo2.java"));
        DefaultMutableTreeNode n3 = new DefaultMutableTreeNode(
                new DemoDescription("demo.CrosshairDemo3", 
                "CrosshairDemo3.java"));
        DefaultMutableTreeNode n4 = new DefaultMutableTreeNode(
                new DemoDescription("demo.CrosshairDemo4", 
                "CrosshairDemo4.java"));
        
        root.add(n1);
        root.add(n2);
        root.add(n3);
        root.add(n4);
        
        return root;
    }
    
    private MutableTreeNode createItemLabelsNode() {
        DefaultMutableTreeNode root = new DefaultMutableTreeNode("Item Labels");

        DefaultMutableTreeNode n1 = new DefaultMutableTreeNode(
                new DemoDescription("demo.ItemLabelDemo1", 
                "ItemLabelDemo1.java"));
        DefaultMutableTreeNode n2 = new DefaultMutableTreeNode(
                new DemoDescription("demo.ItemLabelDemo2", 
                "ItemLabelDemo2.java"));
        DefaultMutableTreeNode n3 = new DefaultMutableTreeNode(
                new DemoDescription("demo.ItemLabelDemo3", 
                "ItemLabelDemo3.java"));
        
        root.add(n1);
        root.add(n2);
        root.add(n3);
        
        return root;
    }
    
    private MutableTreeNode createLegendNode() {
        DefaultMutableTreeNode root = new DefaultMutableTreeNode("Legends");

        DefaultMutableTreeNode n1 = new DefaultMutableTreeNode(
                new DemoDescription("demo.LegendWrapperDemo1", 
                        "LegendWrapperDemo1.java"));
        
        root.add(n1);
        
        return root;
    }
    
    private MutableTreeNode createMarkersNode() {
        DefaultMutableTreeNode root = new DefaultMutableTreeNode("Markers");
        DefaultMutableTreeNode n1 = new DefaultMutableTreeNode(
            new DemoDescription("demo.CategoryMarkerDemo1", 
            "CategoryMarkerDemo1.java"));
        DefaultMutableTreeNode n2 = new DefaultMutableTreeNode(
            new DemoDescription("demo.CategoryMarkerDemo2", 
            "CategoryMarkerDemo2.java"));
        DefaultMutableTreeNode n3 = new DefaultMutableTreeNode(
            new DemoDescription("demo.MarkerDemo1", "MarkerDemo1.java"));
        DefaultMutableTreeNode n4 = new DefaultMutableTreeNode(
            new DemoDescription("demo.MarkerDemo2", "MarkerDemo2.java"));
        root.add(n1);
        root.add(n2);
        root.add(n3);
        root.add(n4);
        return root;
    }
    
    private MutableTreeNode createOrientationNode() {
        DefaultMutableTreeNode root = new DefaultMutableTreeNode(
            "Plot Orientation"
        );

        DefaultMutableTreeNode n1 = new DefaultMutableTreeNode(
            new DemoDescription(
                "demo.PlotOrientationDemo1", "PlotOrientationDemo1.java"
            )
        );
        DefaultMutableTreeNode n2 = new DefaultMutableTreeNode(
            new DemoDescription(
                "demo.PlotOrientationDemo2", "PlotOrientationDemo2.java"
            )
        );
       
        root.add(n1);
        root.add(n2);
        
        return root;
    }
    
    private void displayDescription(String fileName) {
        java.net.URL descriptionURL = SuperDemo.class.getResource(fileName);
        if (descriptionURL != null) {
            try {
                this.descriptionPane.setPage(descriptionURL);
            } 
            catch (IOException e) {
                System.err.println(
                    "Attempted to read a bad URL: " + descriptionURL
                );
            }
        } 
        else {
            System.err.println("Couldn't find file: " + fileName);
        }
         
    }
    
    /**
     * Receives notification of tree selection events and updates the demo 
     * display accordingly.
     * 
     * @param event  the event.
     */
    public void valueChanged(TreeSelectionEvent event) {
        TreePath path = event.getPath();
        Object obj = path.getLastPathComponent();
        if (obj != null) {
            DefaultMutableTreeNode n = (DefaultMutableTreeNode) obj;
            Object userObj = n.getUserObject();
            if (userObj instanceof DemoDescription) {
                DemoDescription dd = (DemoDescription) userObj;
                SwingUtilities.invokeLater(new DisplayDemo(this, dd));
            }
            else {
                this.chartContainer.removeAll();
                this.chartContainer.add(createNoDemoSelectedPanel());
                this.displayPanel.validate();
                displayDescription("select.html");
            }
        }
        System.out.println(obj);
    }
    
    private JPanel createNoDemoSelectedPanel() {
        JPanel panel = new JPanel(new FlowLayout());
        panel.add(new JLabel("No demo selected"));
        panel.setPreferredSize(new Dimension(600, 400));
        return panel;
    }
    
    /**
     * Starting point for the JFreeChart Demo Collection.
     * 
     * @param args  ignored.
     */
    public static void main(String[] args) {
        SuperDemo demo = new SuperDemo("JFreeChart Demo Collection");
        demo.pack();
        RefineryUtilities.centerFrameOnScreen(demo);
        demo.setVisible(true);
    }
    
    static class DisplayDemo implements Runnable {
        
        private SuperDemo app;
        
        private DemoDescription demoDescription;
        
        /**
         * Creates a new runnable.
         * 
         * @param app  the application.
         * @param d  the demo description.
         */
        public DisplayDemo(SuperDemo app, DemoDescription d) {
            this.app = app;
            this.demoDescription = d;    
        }
        
        /**
         * Runs the task.
         */
        public void run() {
            try {
                Class c = Class.forName(this.demoDescription.getClassName());
                Method m = c.getDeclaredMethod("createDemoPanel", null);
                JPanel panel = (JPanel) m.invoke(null, null);
                this.app.chartContainer.removeAll();
                this.app.chartContainer.add(panel);
                this.app.displayPanel.validate();
                String className = c.getName();
                String fileName = className;
                int i = className.lastIndexOf('.');
                if (i > 0) {
                    fileName = className.substring(i + 1);
                }
                fileName = fileName + ".html";
                this.app.displayDescription(fileName);
                
            }
            catch (ClassNotFoundException e1) {
                e1.printStackTrace();
            }
            catch (NoSuchMethodException e2) {
                e2.printStackTrace();
            }
            catch (InvocationTargetException e3) {
                e3.printStackTrace();
            }
            catch (IllegalAccessException e4) {
                e4.printStackTrace();
            }
               
        }
        
    }
}

⌨️ 快捷键说明

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