我用Jbuilder编了一个界面,现在界面上要添加几个表盘和曲线表。请问有没有用过JFreechart的高手做过,还有我要怎么在Jbuilder中配置JFreechart。我如果用记事本编写的话,在环境变量中要怎么配置才能编译运行。请高手指点,谢谢!!

解决方案 »

  1.   

    引入.jar,web.xml配置,
    <servlet-name>DisplayChart</servlet-name>
        <servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>
    <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
            <servlet-name>DisplayChart</servlet-name>
            <url-pattern>/servlet/DisplayChart</url-pattern>
    </servlet-mapping>
    即可使用。
    java 
      DefaultPieDataset dataStatus = new DefaultPieDataset();
            ArrayList statusCd = (ArrayList)request.getAttribute("scTab");
            for(int i = 0 ; i < statusCd.size() ; i ++){
                HashMap schm = (HashMap)statusCd.get(i);
                dataStatus.setValue(schm.get("statusnm").toString(),Integer.valueOf(schm.get("cnt").toString()));
            }
            PiePlot plotStatus = new PiePlot(dataStatus);
            JFreeChart chartStatus = new JFreeChart("",JFreeChart.DEFAULT_TITLE_FONT, plotStatus, true);
            chartStatus.setBackgroundPaint(java.awt.Color.white);//backcolor
           
            ChartRenderingInfo infoStatus = new ChartRenderingInfo(new StandardEntityCollection());
            //500width&#65533;&#65404;&#65533;300height
            String filenameStatus = ServletUtilities.saveChartAsPNG(chartStatus, 760, 500, infoStatus, session);
            String graphURLStatus = request.getContextPath() + "/servlet/DisplayChart?filename=" + filenameStatus;
    jsp:
    <img src="<%= graphURLStatus %>" width=760 height=500 border=0 usemap="#<%= filenameStatus %>">
      

  2.   

    先谢谢楼上的朋友。不过我做的是要在界面中添加图表和表盘,不是页面哈。我是不知道怎么在界面中生成呢。您那个配置我在网上也看过,我想问下要在jbuilder中使用jfreechart的话,一定要建web么?因为我只需要编写界面就可以了,并不需要web,jsp这些东西哈。还有我现在想先看看jfreechart里的例子,我在我的电脑里的环境变量中也添加了jar文件,可是还是编译不通过。怎么回事呢?
      

  3.   

    不会是需要把jfreechart里所有的java文件都编译一次吧??
      

  4.   

    你是不是想在tomcat下面运行jfreechart的sample啊?
      

  5.   

    不是在tomcat下面运行jfreechart哈,jfreechart里面不是有例子程序么,我想编译运行一下看看。是用cmd进入jfreechart,编译里面的例子,编译是成功了,但运行就出异常!
    试了好几个例子,都是出这样的异常。哪位大侠能解决不??
    F:\jfreechart-0.9.20\src\org\jfree\chart\demo>java DynamicDataDemo3
    Exception in thread "main" java.lang.NoClassDefFoundError: DynamicDataDemo3 (wrong
     name: org/jfree/chart/demo/DynamicDataDemo3)
            at java.lang.ClassLoader.defineClass1(Native Method)
            at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
            at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
            at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
            at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
            at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
            at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
            at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
      

  6.   

    你把那个war包直接扔tomcat下就能看效果了,何必非要使用cmd看效果呢?你不就是想看一下sample的效果吗?
      

  7.   

    我用cmd看效果,是想找出我需要的图表的程序代码,这样我可以根据程序做修改,改成我所需要的图表和表盘
      

  8.   

    package org.jfree.chart.demo;import java.awt.*;
    import java.awt.geom.Ellipse2D;
    import javax.swing.ImageIcon;
    import javax.swing.JPanel;
    import org.jfree.chart.*;
    import org.jfree.chart.axis.NumberAxis;
    import org.jfree.chart.plot.CategoryPlot;
    import org.jfree.chart.plot.PlotOrientation;
    import org.jfree.chart.renderer.category.LineAndShapeRenderer;
    import org.jfree.chart.title.TextTitle;
    import org.jfree.data.category.CategoryDataset;
    import org.jfree.data.category.DefaultCategoryDataset;
    import org.jfree.ui.*;public class LineChartDemo1 extends ApplicationFrame
    {    public LineChartDemo1(String s)
        {
            super(s);
            JPanel jpanel = createDemoPanel();
            jpanel.setPreferredSize(new Dimension(500, 270));
            setContentPane(jpanel);
        }    private static CategoryDataset createDataset()
        {
            DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset();
            defaultcategorydataset.addValue(212D, "Classes", "JDK 1.0");
            defaultcategorydataset.addValue(504D, "Classes", "JDK 1.1");
            defaultcategorydataset.addValue(1520D, "Classes", "JDK 1.2");
            defaultcategorydataset.addValue(1842D, "Classes", "JDK 1.3");
            defaultcategorydataset.addValue(2991D, "Classes", "JDK 1.4");
            defaultcategorydataset.addValue(3500D, "Classes", "JDK 1.5");
            return defaultcategorydataset;
        }    private static JFreeChart createChart(CategoryDataset categorydataset)
        {
            JFreeChart jfreechart = ChartFactory.createLineChart("Java Standard Class Library", null, "Class Count", categorydataset, PlotOrientation.VERTICAL, false, true, false);
            jfreechart.addSubtitle(new TextTitle("Number of Classes By Release"));
            TextTitle texttitle = new TextTitle("Source: Java In A Nutshell (5th Edition) by David Flanagan (O'Reilly)");
            texttitle.setFont(new Font("SansSerif", 0, 10));
            texttitle.setPosition(RectangleEdge.BOTTOM);
            texttitle.setHorizontalAlignment(HorizontalAlignment.RIGHT);
            jfreechart.addSubtitle(texttitle);
            jfreechart.setBackgroundPaint(Color.white);
            CategoryPlot categoryplot = (CategoryPlot)jfreechart.getPlot();
            categoryplot.setBackgroundPaint(Color.lightGray);
            categoryplot.setRangeGridlinePaint(Color.gray);
            categoryplot.setRangeGridlinesVisible(false);
            java.net.URL url = (LineChartDemo1.class).getClassLoader().getResource("OnBridge11small.png");
            if(url != null)
            {
                ImageIcon imageicon = new ImageIcon(url);
                categoryplot.setBackgroundImage(imageicon.getImage());
            }
            categoryplot.setBackgroundImageAlpha(1.0F);
            NumberAxis numberaxis = (NumberAxis)categoryplot.getRangeAxis();
            numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
            LineAndShapeRenderer lineandshaperenderer = (LineAndShapeRenderer)categoryplot.getRenderer();
            lineandshaperenderer.setShapesVisible(true);
            lineandshaperenderer.setDrawOutlines(true);
            lineandshaperenderer.setUseFillPaint(true);
            lineandshaperenderer.setFillPaint(Color.white);
            lineandshaperenderer.setSeriesStroke(0, new BasicStroke(3F));
            lineandshaperenderer.setSeriesOutlineStroke(0, new BasicStroke(2.0F));
            lineandshaperenderer.setSeriesShape(0, new java.awt.geom.Ellipse2D.Double(-5D, -5D, 10D, 10D));
            return jfreechart;
        }    public static JPanel createDemoPanel()
        {
            JFreeChart jfreechart = createChart(createDataset());
            return new ChartPanel(jfreechart);
        }    public static void main(String args[])
        {
            LineChartDemo1 linechartdemo1 = new LineChartDemo1("JFreeChart - Line Chart Demo 1");
            linechartdemo1.pack();
            RefineryUtilities.centerFrameOnScreen(linechartdemo1);
            linechartdemo1.setVisible(true);
        }
    }这个是Line Chart的Demo,没用过JB(貌似源代码有下载的,或者你把他的jar包解压缩,再找个反编译软件就可以看到所有源代码了)
      

  9.   

    JFreeChart完全可以集成在Application中的。