`
zhaoyl
  • 浏览: 218080 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

利用jfreechart制作仪表盘

阅读更多

 

 

效果图如下:

 

 

 

 

 

jfreechart版本:

jfreechart 1.0.6

 

 

 

<%@ page contentType="text/html;charset=GBK"%>
<%@ page import="java.awt.Color,          
                org.jfree.chart.JFreeChart,               
                org.jfree.chart.servlet.ServletUtilities,                                                  
                java.awt.Font,
                java.awt.GradientPaint,
                org.jfree.data.general.DefaultValueDataset,
                org.jfree.experimental.chart.plot.dial.*,
                org.jfree.ui.StandardGradientPaintTransformer,
                org.jfree.ui.GradientPaintTransformType,
                java.awt.Point            
                "%>
<%

            //数据集合对象 此处为DefaultValueDataset
            DefaultValueDataset dataset = new DefaultValueDataset();
            //当前指针指向的位置,即:我们需要显示的数据
            dataset = new DefaultValueDataset(20D);
            //实例化DialPlot
            DialPlot dialplot = new DialPlot();
            dialplot.setView(0.0D, 0.0D, 1.0D, 1.0D);
            //设置数据集合
            dialplot.setDataset(dataset);
            //开始设置显示框架结构
            SimpleDialFrame simpledialframe = new SimpleDialFrame();
            simpledialframe.setBackgroundPaint(Color.lightGray);
            simpledialframe.setForegroundPaint(Color.darkGray);
            dialplot.setDialFrame(simpledialframe);
             //结束设置显示框架结构          
            GradientPaint gradientpaint = new GradientPaint(new Point(), new Color(255, 255, 255), new Point(), new Color(170, 170, 220));
            DialBackground dialbackground = new DialBackground(gradientpaint);
            dialbackground.setGradientPaintTransformer(new StandardGradientPaintTransformer(GradientPaintTransformType.VERTICAL));
            dialplot.setBackground(dialbackground);
            //设置显示在表盘中央位置的信息
            DialTextAnnotation dialtextannotation = new DialTextAnnotation("温度");
            dialtextannotation.setFont(new Font("Dialog", 1, 14));
            dialtextannotation.setRadius(0.69999999999999996D);
            dialplot.addLayer(dialtextannotation);
            DialValueIndicator dialvalueindicator = new DialValueIndicator(0, "c");
            dialplot.addLayer(dialvalueindicator);
            //根据表盘的直径大小(0.88),设置总刻度范围
            StandardDialScale standarddialscale = new StandardDialScale(-40D, 60D, -120D, -300D);
            standarddialscale.setTickRadius(0.88D);
            standarddialscale.setTickLabelOffset(0.14999999999999999D);
            standarddialscale.setTickLabelFont(new Font("Dialog", 0, 14));
            //主意是 dialplot.addScale()不是dialplot.addLayer()
            dialplot.addScale(0, standarddialscale);
            //设置刻度范围(红色)
            StandardDialRange standarddialrange = new StandardDialRange(40D, 60D, Color.red);
            standarddialrange.setInnerRadius(0.52000000000000002D);
            standarddialrange.setOuterRadius(0.55000000000000004D);
            dialplot.addLayer(standarddialrange);
            //设置刻度范围(橘黄色)          
            StandardDialRange standarddialrange1 = new StandardDialRange(10D, 40D, Color.orange);
            standarddialrange1.setInnerRadius(0.52000000000000002D);
            standarddialrange1.setOuterRadius(0.55000000000000004D);
            dialplot.addLayer(standarddialrange1);
            //设置刻度范围(绿色)              
            StandardDialRange standarddialrange2 = new StandardDialRange(-40D, 10D, Color.green);
            standarddialrange2.setInnerRadius(0.52000000000000002D);
            standarddialrange2.setOuterRadius(0.55000000000000004D);
            dialplot.addLayer(standarddialrange2);
            //设置指针
            org.jfree.experimental.chart.plot.dial.DialPointer.Pointer pointer = new org.jfree.experimental.chart.plot.dial.DialPointer.Pointer();
            dialplot.addLayer(pointer);
            //实例化DialCap
            DialCap dialcap = new DialCap();
            dialcap.setRadius(0.10000000000000001D);
            dialplot.setCap(dialcap);
            //生成chart对象
            JFreeChart jfreechart = new JFreeChart(dialplot);
            //设置标题
            jfreechart.setTitle("设备取水温度采样");
      
            String filename = ServletUtilities.saveChartAsPNG(jfreechart, 400, 300, session);
            //调用DisplayChart(配置在web.xml中),生成图形
            String graphURL = request.getContextPath() + "/DisplayChart?filename=" + filename;
      
      
       
%>

<table width="100%">
    <tr>
        <td align="center">
            <!-- 生成图形 -->
            <img src="<%= graphURL %>" width=400 height=300 border=0  alt="">
        </td>
    </tr>
</table>

 

 

 

分享到:
评论
9 楼 带个回家 2012-03-07  
wosidanyang 写道
跑起来是跑起来了,为什么没图片

大哥,肯定没有撒,楼主提供的代码是测试。你得搞现实啊。。。不懂再问我,如果我不在线,请留言:http://developer.aiwgame.com/ask-question
8 楼 wosidanyang 2012-03-02  
跑起来是跑起来了,为什么没图片
7 楼 带个回家 2012-02-22  
要jar包的找我,或者自己下载:
PS:本人只罗列自己全部的jar包,肯定跑得起,至于多余的,请你们自己慢慢测试哈
http://developer.aiwgame.com
[url]gnujaxp.jar
iText-2.1.5.jar
jcommon-1.0.17.jar
jfreechart-1.0.14-experimental.jar
jfreechart-1.0.14-swt.jar
jfreechart-1.0.14.jar
junit.jar
servlet.jar
swtgraphics2d.jar[/url]
6 楼 pshcong 2012-01-21  
程序是很漂亮的,但没有提供完全的源代码,导致学习者无法实现,例如DialPlot类、StandardDialRange类等好几个类的代码都无法看到。学不到实质的学习内容,希望加强。
5 楼 iro 2011-10-17  
跑不起来啊,官方jar包才1.0.13.不知道你这个1.0.6从哪下载过来的?
4 楼 yinlongfei 2011-05-10  
两个字“漂亮”
3 楼 lenves 2009-09-23  
老兄,看到版本了 呵呵,  但是我运行怎么没有图片啊,就是的叉叉了
2 楼 lenves 2009-09-23  
您好  你这jfreechart是那个版本的啊
1 楼 yangpeihai 2009-01-19  
谢谢,不知道前辈是否有研究jfreeChart和dwr结合,有的话,请别吝惜赐教,我的邮箱是:472579211@qq.com,先谢谢啦!

相关推荐

    利用jfreechart制作动态仪表盘

    在这个例子中,我们将探讨如何利用JFreeChart来创建一个动态的仪表盘。 首先,我们需要创建一个`DefaultValueDataset`对象,这是JFreeChart用来存储数据的基本类。在这个案例中,我们创建了一个包含单个值(20D)的...

    JFreeChart+Eclipse

    JFreeChart,作为一款功能强大的Java图表绘制工具,提供了丰富的图表类型支持,包括饼图、柱状图、线图、区域图、分布图、混合图、甘特图及仪表盘等,几乎涵盖了所有常见的数据可视化需求。本文将深入探讨如何在...

    仪表盘Demo02锥形渐变

    在仪表盘的上下文里,可能用锥形渐变来制作从中心向外逐渐变化颜色的背景效果,给表盘增加视觉吸引力。 在实现这个Demo时,开发者首先会创建一个自定义的QWidget子类,这将是仪表盘的可视表示。在重写paintEvent()...

    jfreechart 介绍

    jFreeChart适用于多种场景,尤其在数据分析、报告生成、仪表盘设计等方面表现出色。例如,在企业内部,财务部门可能需要定期制作复杂的财务报表,jFreeChart能帮助他们快速地将数据可视化,使报告更加直观易懂。又如...

    JFreeChart的一个简单例子

    - 仪表盘开发:在企业级应用或Web应用的仪表盘中,JFreeChart可以用来展示关键性能指标。 - 教育和演示:教学材料或技术演示中,使用JFreeChart制作图表能直观地解释概念。 总之,JFreeChart是Java开发者手中的一...

    JFreeChart开发指南

    **JFreeChart** 是一款基于Java的开源图形库,它提供了丰富的图表类型,如饼图、柱状图、折线图、散点图、时序图、甘特图、仪表盘图、混合图、symbol图和风力方向图等,用于在应用程序、Applets、Servlets、JSP等...

    JFreeChart

    这个库广泛应用于数据可视化,包括但不限于科学图表、商业报告、仪表盘和软件界面。JFreeChart提供了一系列丰富的图表类型,如柱状图、折线图、饼图、散点图、甘特图以及3D图表等,能够满足各种数据展示的需求。 1....

    jfreechart-1.0.13

    4. **仪表盘和监控**:实时数据监控和仪表盘应用可以利用JFreeChart实现动态图表,展示系统状态或性能指标。 **使用JFreeChart的基本步骤:** 1. **导入库**:在Java项目中,需要添加JFreeChart的依赖,通常通过...

    jfreechart_all

    1. **多样化图表类型**:JFreeChart支持多种图表类型,如柱状图、饼图、线图、散点图、面积图、甘特图、仪表盘图等,满足不同场景下的数据可视化需求。 2. **高度定制化**:JFreeChart允许开发者自定义图表的每一个...

    Java图表 JFreeChart.7z

    6. 圆形图(Pie Dial)和仪表盘(Gauges):用于模拟物理仪表的可视化效果。 7. 热力图(Heat Maps):通过颜色深浅表示二维数据的分布。 二、JFreeChart关键特性 1. 图表类型多样:除了上述的基本图表类型,...

    JFreeChart所需要的包.rar

    JFreeChart是一款强大的Java图表库,它允许开发者创建多种类型的高质量图表,如柱状图、饼图、线图、散点图以及复杂的仪表盘图表。这个压缩包"JFreeChart所需要的包.rar"包含了两个核心的JAR文件,它们是实现...

    flex实战报表:jFreeChart,cewolf,iText.doc

    - **特殊图表**:jFreeChart还支持制作仪表盘和温度计等专业图表,为数据分析提供直观的视觉效果。 2. **cewolf** cewolf是另一个基于Java的Flex报表组件,它允许在Flex客户端直接生成和显示图表,提供更丰富的...

    使用JFreeChart来创建基于web的图表.docx

    该库支持多种图表类型,如饼图、柱状图(包括普通和堆叠柱状图)、线图、区域图、分布图、混合图、甘特图以及仪表盘等。这些图表能够广泛应用于数据分析、报告制作和Web应用程序开发中。 #### 准备开发环境 在深入...

Global site tag (gtag.js) - Google Analytics