`
djsl6071
  • 浏览: 599835 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

使用Jfreechart 在applet中画动态柱图

阅读更多

使用Jfreechart 在applet中画动态柱图

一般的柱状图,都是不是动态的,只是简单的生成一个柱状图片就OK了,在这个例子中,将实现柱行的动态显示。

它和使用Jfreechart显示静态的柱状图,没有什么不一样,注意到代码中,这一段:

CategoryPlot p = jfreechart.getCategoryPlot();
        
//设置新的数据集
        jfreechart.getCategoryPlot().setDataset(createDataset());;
        
//通知Jfreechart 数据发生了改变,重新绘制柱状图
        if (jfreechart != null{
            jfreechart.fireChartChanged();
        }

这段代码,先获取一些新的数据集,然后调用CategoryPlot中的SetDataset方法来设置chart的数据集,最后调用chart中的firechartchanged方法,来通知chart刷新视图。运行一下,呵呵,怎么样,很酷吧。


完整的代码如下:

/**//**
 * 
 *  TODO 使用Jfreechart 在applet中画动态柱图
 *
 *  @author 刘正伟(sundy)
 *  @see mailto:sundy26@126.com
 *  @version 1.0
 *  @since 2005-6-22
 * 
 *  修改记录:
 *  日期              修改人                 描述
 *  -----------------------------------------------------------------------
 
*/

package com.sundy.applet;

import java.awt.
*;
import java.awt.
event.ActionEvent;
import java.awt.
event.ActionListener;
import javax.swing.JApplet;
import javax.swing.Timer;

import org.jfree.chart.
*;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.CategoryLabelPositions;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.data.category.CategoryDataset;

import org.jfree.chart.axis.NumberAxis;
import org.jfree.data.category.DefaultCategoryDataset;

public class BarCpuUsage extends JApplet {
    JFreeChart jfreechart;

    
class DataGenerator extends Timer implements ActionListener {
        
private static final long serialVersionUID = 3977867288743720504L;

        
public void actionPerformed(ActionEvent actionevent) {

            addTotalObservation();

        }


        DataGenerator() 
{
            super(
1000null);
            addActionListener(
this);
        }

    }


    
private void addTotalObservation() {
        CategoryPlot p 
= jfreechart.getCategoryPlot();
        
//设置新的数据集
        jfreechart.getCategoryPlot().setDataset(createDataset());;
        
//通知Jfreechart 数据发生了改变,重新绘制柱状图
        if (jfreechart != null{
            jfreechart.fireChartChanged();
        }

    }


    
private static CategoryDataset createDataset() {
        DefaultCategoryDataset defaultcategorydataset 
= new DefaultCategoryDataset();
        String s 
= "System";
        String s1 
= "Nice";
        String s2 
= "User";
        String s3 
= "Total";
        String s4 
= "Cpu01";
        String s5 
= "Cpu02";
        String s6 
= "Cpu03";
        String s7 
= "Cpu04";
        
        
double d1 = (float)(10D * Math.random());
        
double d2 = (float)(10D * Math.random());
        
double d3 = (float)(10D * Math.random());
        
double d4 = (float)(10D * Math.random());
        
        defaultcategorydataset.addValue(d1, s, s3);
        defaultcategorydataset.addValue(d2, s, s4);
        defaultcategorydataset.addValue(d3, s, s5);
        defaultcategorydataset.addValue(d4, s, s6);
        defaultcategorydataset.addValue(5D, s, s7);
        defaultcategorydataset.addValue(5D, s1, s3);
        defaultcategorydataset.addValue(7D, s1, s4);
        defaultcategorydataset.addValue(6D, s1, s5);
        defaultcategorydataset.addValue(8D, s1, s6);
        defaultcategorydataset.addValue(4D, s1, s7);
        defaultcategorydataset.addValue(4D, s2, s3);
        defaultcategorydataset.addValue(3D, s2, s4);
        defaultcategorydataset.addValue(2D, s2, s5);
        defaultcategorydataset.addValue(3D, s2, s6);
        defaultcategorydataset.addValue(6D, s2, s7);
        
return defaultcategorydataset;
    }


    
public void init() {
        CategoryDataset categorydataset 
= createDataset();
        jfreechart 
= ChartFactory.createBarChart("处理器利用率",
                
"节点名称""Value", categorydataset, PlotOrientation.VERTICAL,
                
truetruefalse);
        jfreechart.setBackgroundPaint(Color.white);
        CategoryPlot categoryplot 
= jfreechart.getCategoryPlot();
        categoryplot.setBackgroundPaint(Color.lightGray);
        categoryplot.setDomainGridlinePaint(Color.white);
        categoryplot.setDomainGridlinesVisible(
true);
        categoryplot.setRangeGridlinePaint(Color.white);
        NumberAxis numberaxis 
= (NumberAxis) categoryplot.getRangeAxis();
        numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
        BarRenderer barrenderer 
= (BarRenderer) categoryplot.getRenderer();
        barrenderer.setDrawBarOutline(
false);
        GradientPaint gradientpaint 
= new GradientPaint(0.0F0.0F, Color.blue,
                
0.0F0.0Fnew Color(0064));
        GradientPaint gradientpaint1 
= new GradientPaint(0.0F0.0F,
                Color.green, 
0.0F0.0Fnew Color(0640));
        GradientPaint gradientpaint2 
= new GradientPaint(0.0F0.0F, Color.red,
                
0.0F0.0Fnew Color(1641660));
        barrenderer.setSeriesPaint(
0, gradientpaint);
        barrenderer.setSeriesPaint(
1, gradientpaint1);
        barrenderer.setSeriesPaint(
2, gradientpaint2);
        barrenderer.setItemMargin(
0.05);
    
        CategoryAxis categoryaxis 
= categoryplot.getDomainAxis();
        categoryaxis.setCategoryLabelPositions(CategoryLabelPositions
                .createUpRotationLabelPositions(
0.52359877559829882D));

        ChartPanel chartpanel 
= new ChartPanel(jfreechart, false);
        chartpanel.setPreferredSize(
new Dimension(500270));

        getContentPane().add(chartpanel);
        (
new DataGenerator()).start();

    }

    
public void paint(Graphics g) {

        
if (jfreechart != null{
            jfreechart.draw((Graphics2D) g, getBounds());
            
        }

    }


    
public void destroy() {
    }

}

posted on 2005-08-12 18:02 sundy 阅读(812) 评论(2)  编辑 收藏 引用 所属分类: Java  

分享到:
评论

相关推荐

    jfreechart+applet三维图形实例

    将JFreeChart与Applet结合,可以在Web浏览器中展示动态的、交互式的三维图形。 在"jfreechart+applet三维图形实例"中,我们主要会涉及到以下几个关键知识点: 1. **JFreeChart库的使用**:首先,我们需要了解如何...

    applet_+_JfreeChart_实现曲线走势图

    本项目结合Applet和JFreeChart,目的是实现在网页上动态展示曲线走势图。 首先,理解Applet的基本概念是必要的。Applet是Java平台早期的一种特性,允许开发者创建可以在浏览器中运行的交互式小程序。为了在网页上...

    Applet版JFreeChart演示

    开发者可以通过阅读这些源代码,学习如何在Applet中使用JFreeChart创建图表,理解如何处理数据、设置图表样式以及如何在Web环境中部署和交互。 **总结** "Applet版JFreeChart演示"是一个很好的学习资源,它展示了...

    JFreeChart实时折线图

    在本场景中,我们关注的是如何使用JFreeChart来实现实时更新的折线图。下面将详细介绍这个过程。 首先,JFreeChart的使用通常分为以下几个步骤: 1. **创建图表**: 首先,你需要创建一个`JFreeChart`对象。这可以...

    jfreechart中文学习文档

    这款工具非常适合在各种 Java 应用程序、Applet 和 Servlet 中使用,提供了一种高效的方式来生成高质量的图表。由于其开源性质,JFreeChart 成为了许多开发者和企业的首选图表生成解决方案。 **1.1.2 特点** - **...

    JFreeChart在JavaWeb项目中的应用.pdf

    系统中需要使用动态图表来展示某些报表数据,为了实现这一需求,选择了JFreeChart图表组件。 ##### 4.1 实现过程 1. **创建数据集对象Category Dataset**:使用`Dataset Utilities`类的`createCategoryDataset`...

    JFreeChart+Eclipse

    要在Eclipse中使用JFreeChart,首先需要完成以下步骤的配置: 1. **下载JFreeChart**:访问官方网址`http://www.jfree.org/jfreechart/index.html`下载最新版本的JFreeChart压缩包。 2. **安装配置**:解压下载的`...

    POI和JFreeChart框架实现生成Excel文件(生成 统计图)

    // 这里使用了JFreeChart中的ChartFactory来创建一个简单的柱状图 // 示例中省略了具体的图表数据创建过程 // ... // 创建图表并设置样式 // ... // 将图表转换为图像 BufferedImage chartImage = ChartUtilities....

    JFreeChart饼图、折线图等资料学习

    JFreeChart是开源项目,它的主要功能是生成高质量的图表,支持静态和动态两种形式,可以在Swing、Web应用、Applet和服务器端环境中使用。它提供了丰富的图表类型,如饼图用于展示各部分占比,折线图则适合展现数据随...

    jfreechart技术研究文档

    标题:JFreeChart 技术详解 JFreeChart 是一款强大的 Java 图表库,由 JFreeChart ...在实际开发中,结合 JFreeChart 的详细文档,可以有效地实现复杂图表的绘制和动态更新,为 Java 应用程序增添丰富的可视化元素。

    JFreeChart文档、jar包、教程

    在压缩包中的"JFreeChart详细使用教程"中,你可以期待找到以下内容: - **入门指南**:介绍如何添加JFreeChart到项目中,以及如何创建基本的图表。 - **实例分析**:通过实际的代码示例,演示如何创建和定制各种...

    JfreeChart_sql实现时间曲线图

    对于Web应用,你可以使用DisplayChart servlet来动态生成图表并将其输出为图像,这样用户就可以在浏览器中查看。 总的来说,JFreeChart结合SQL提供了一种有效的方式来可视化基于时间的数据变化。通过理解和熟练运用...

    jfreeChart pdf文档(原文)

    - **命令行解压**:在终端中使用 `tar -xzf` 命令解压文件。 ##### 3.3.2 在 Windows 上解压 - **图形界面解压**:使用如 WinRAR 或 7-Zip 等工具解压文件。 ##### 3.3.3 文件结构 - **主要文件夹**:包含源代码、...

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

    下面以创建一个柱状图为例,展示如何使用JFreeChart在Web应用中生成图表: 1. **准备数据**:定义一个DefaultCategoryDataset实例,填充数据。 2. **创建图表**:使用ChartFactory.createBarChart()方法创建柱状...

    JFreeChart示例 JAVA_JFreeChart的应用 JFreeChart 教程

    JFreeChart是Java领域中领先的开源图表库,由JFree组织在SourceForge.net上维护和发布。它提供了一系列强大的图表生成功能,适用于多种Java应用程序,包括桌面应用、Applet、Servlet以及JSP网页。JFreeChart的核心...

    JFreeChart柱状图资料

    在JFreeChart的CHM手册中,你可以找到关于如何使用JFreeChart创建柱状图的详细步骤、API参考、示例代码以及问题解决方案。 6. **应用场景** JFreeChart的柱状图常用于商业报告、统计分析、科学实验结果展示等场景...

    JfreeChart(ppt)

    **JFreeChart** 是一个强大的Java图形库,用于在各种应用程序、Applet、Servlet和JSP中生成高质量的图表。这个开源项目由JFreeChart公司维护,并在SourceForge.net上发布,是Java图形解决方案的首选之一。JFreeChart...

Global site tag (gtag.js) - Google Analytics