`
avi2
  • 浏览: 90360 次
社区版块
存档分类
最新评论

jfreechat 一些杂记

    博客分类:
  • java
阅读更多
最近做个项目要用到jFreechart,所以在用的过程中的一些东西记录下来,方便自己以后查询

1.图形平移
    private void moveRightActionPerformed(java.awt.event.ActionEvent evt) {                                          

        Rectangle2D screenDataArea = chartPanel.getScreenDataArea();

        screenDataArea.setRect(screenDataArea.getX() + MOVE_LEFT_STEP, screenDataArea.getY(), screenDataArea.getWidth(), screenDataArea.getHeight());
        chartPanel.zoom(screenDataArea);
        chartPanel.repaint();
    }                                         



2.通过鼠标对legend进行操作
……

chartPanel.addChartMouseListener(new MouseListener());//添加鼠标监听响应

……


    private class MouseListener implements ChartMouseListener {

        public void chartMouseClicked(ChartMouseEvent event) {
            if (event.getTrigger().getClickCount() == 2) { //双击相应
                ChartEntity localChartEntity = event.getEntity();
                if (localChartEntity instanceof LegendItemEntity) { // 判别是否是legend
                    LegendItemEntity legendItemEntity = (LegendItemEntity) localChartEntity;                                    
                    XYPlot xyPlot = (XYPlot) chart.getPlot();
                    TimeSeriesCollection historyDataset = (TimeSeriesCollection) xyPlot.getDataset(HISTROY_LINE); // 数据集
                   
                    XYLineAndShapeRenderer historyXyLineAndShapeRenderer = (XYLineAndShapeRenderer) xyPlot.getRenderer(HISTROY_LINE); // 画线
                    // 其他操作……
            }
        }

        public void chartMouseMoved(ChartMouseEvent event) {
        }
    }






3.多坐标轴操作
    private JFreeChart createChart() {
        JFreeChart chart = ChartFactory.createTimeSeriesChart("综合曲线面板", "历史曲线时间", "历史曲线值", historyDataset, true, true, false);
        chart.getTitle().setFont(titleFont);
        XYPlot xyPlot = (XYPlot) chart.getPlot();
        DateAxis histroyDataAxis = new DateAxis("历史曲线时间");
        histroyDataAxis.setAutoRange(true);
        histroyDataAxis.setLabelFont(axisFont);
        histroyDataAxis.setTickLabelFont(axisFont);
        xyPlot.setDomainAxis(HISTROY_LINE, histroyDataAxis);

        ValueAxis historyRangeAxis = new NumberAxis("历史数据值");
        historyRangeAxis.setLabelFont(axisFont);
        historyRangeAxis.setTickLabelFont(axisFont);
        xyPlot.setRangeAxis(HISTROY_LINE,historyRangeAxis);
        XYLineAndShapeRenderer historyXyLineAndShapeRenderer = new XYLineAndShapeRenderer();
        historyXyLineAndShapeRenderer.setBaseShapesVisible(true);
        int i = 0;
        
        xyPlot.setRenderer(HISTROY_LINE, historyXyLineAndShapeRenderer);


        realTimeDataset = new TimeSeriesCollection();
        xyPlot.setDataset(REAL_TIME_LINE, realTimeDataset);
        ValueAxis realTimeValueaxis = new DateAxis("实时时间");
        realTimeValueaxis.setLabelFont(axisFont);
        //自动设置数据轴数据范围
        realTimeValueaxis.setAutoRange(true);
        //数据轴固定数据范围 30s
        realTimeValueaxis.setFixedAutoRange(30000D);

        xyPlot.setDomainAxis(REAL_TIME_LINE, realTimeValueaxis);
        ValueAxis realTimeRangeAxis = new NumberAxis("实时数据值");
        realTimeRangeAxis.setLabelFont(axisFont);
        xyPlot.setRangeAxis(REAL_TIME_LINE, realTimeRangeAxis);
        XYLineAndShapeRenderer realTimeXyLineAndShapeRenderer = new XYLineAndShapeRenderer();
        //historyXyLineAndShapeRenderer.setBaseShapesVisible(true);
        realTimeXyLineAndShapeRenderer.setUseFillPaint(true);
        realTimeXyLineAndShapeRenderer.setLegendItemToolTipGenerator(new StandardXYSeriesLabelGenerator("history {0}"));
        xyPlot.setRenderer(REAL_TIME_LINE, realTimeXyLineAndShapeRenderer);

// 数据映射
        xyPlot.setDomainAxisLocation(REAL_TIME_LINE, AxisLocation.TOP_OR_RIGHT);
        xyPlot.setRangeAxisLocation(REAL_TIME_LINE,AxisLocation.TOP_OR_RIGHT);
        xyPlot.setDomainAxisLocation(HISTROY_LINE, AxisLocation.BOTTOM_OR_LEFT);
        xyPlot.setRangeAxisLocation(HISTROY_LINE, AxisLocation.BOTTOM_OR_LEFT);
        xyPlot.mapDatasetToDomainAxis(REAL_TIME_LINE, REAL_TIME_LINE);
        xyPlot.mapDatasetToRangeAxis(REAL_TIME_LINE, REAL_TIME_LINE);
        xyPlot.mapDatasetToDomainAxis(HISTROY_LINE, HISTROY_LINE);
        xyPlot.mapDatasetToRangeAxis(HISTROY_LINE, HISTROY_LINE);
        return chart;



4.
jfreechart中,series是表示每个线,他有个自己的key,另外series还有自己在render中的一个index,两者转化靠Dataset中indexOf()函数
分享到:
评论

相关推荐

    jfreechat

    jfreechat软件demo

    linux jfreechat 终极解决

    在Linux(Ubuntu)环境下,开发或使用Java应用时可能会遇到一些特定的问题,特别是涉及到本地化和字体渲染的部分。本文将详细解析"Linux jfreechat 终极解决"这个主题,包括如何解决JFreeChart在Ubuntu系统下显示为...

    JFreeChat基础包

    **JFreeChart基础包**是Java开发中用于创建高质量图表的开源库,它为开发者提供了丰富的图表类型,便于在应用程序中展示数据。JFreeChart的主要功能在于其强大的绘图能力,能够生成各种复杂的统计和业务图表,使得...

    JFreeChat中文教程(入门篇).rar

    JFreeChat中文教程(入门篇).rar

    JFreeChat中文API

    JFreeChat中文API,大致方法和说明都有,希望对需要的人有用。

    jfreechat的例子

    在压缩包文件“jfreechat”中,可能包含了JFreeChart库的源码、示例程序、教程文档以及相关的资源文件。用户可以通过解压文件并运行示例代码来学习和理解JFreeChart的工作原理。这些示例是学习JFreeChart的最佳实践...

    JFreeChat中文教程(入门篇)

    **JFreeChart中文教程(入门篇)** JFreeChart是一个流行的Java库,用于创建各种图表,包括线图、柱状图、饼图、散点图、甘特图以及更多复杂图表。这个开源项目广泛应用于数据分析、报表生成和可视化应用中。...

    jfreechat 饼图,柱状,折线图示例代码

    JFreeChart是一款强大的Java图表库,它允许开发者创建多种类型的2D和3D图表,包括饼图、柱状图和折线图等。在Java应用中,这些图表常用于数据可视化,帮助用户直观理解复杂的数据信息。下面我们将详细介绍如何使用...

    第三方报表插件jfreechat及itext及实例

    在IT行业中,报表生成是数据分析和业务展示的重要环节。本篇将深入探讨两个知名的开源工具:JFreeChart和iText,以及如何利用它们创建出专业且功能丰富的报表。 首先,JFreeChart是一款强大的Java库,它允许开发者...

    JFreeChat_图形实时无刷新展现数据实例

    Eclipse建立的WEB项目 做的3种 柱状图 带突出的饼图 线性图 的实例效果 柱状图数据采用随机数充当数据(为了看到实时变化的图形效果) 直接导入项目运行即可 http://localhost:8080/JFreechat/index.jsp

    jfreechat 实例

    JFreeChart是一款强大的Java图表库,它为开发者提供了在Java应用程序和Web应用中创建各种静态图表的能力。这个实例包括了两种使用方式:直接生成本地图片和通过Servlet在网页上显示图表。 1. **JFreeChart简介** ...

    JFREECHAT编程 仪表盘进度表示

    JFREECHAT编程 仪表盘进度表示 JFREECHAT编程 仪表盘进度表示

    jfreechat线性图

    JFreeChart是一款强大的Java图表库,它允许开发者创建多种类型的图表,包括线性图、饼图、柱状图、散点图等,并可以方便地集成到Java应用、Web应用或Swing应用中。在给定的标题“jfreechart线性图”中,主要讨论的是...

    JFreeChat中文教程(入门篇)中文版

    状图 普通柱状图以及堆栈柱状图 线图 区域图 分布图 混合图 甘特图以及一些仪表盘等等 这些不同式样的图表基本 上可以满足目前的要求 为了减少篇幅本文主要介绍前面三种类型的图表 读者可以触类旁通去开发其他样式的...

    jfreechat 折线图

    **JFreeChart 折线图详解** 在Java编程中,数据可视化是不可或缺的一部分,而JFreeChart库就是Java中一个强大的图表绘制工具。本篇将深入探讨如何利用JFreeChart来创建折线图,这对于数据分析、报表展示以及各种UI...

    jfreechat图形及源码

    jfreechat,此文件包含图形的事例,和源代码的实现,开发人员可以根据图形直接把源码拷贝过来应用

    jfreechat 3大报表通用方法

    此文件对于jfreechat没有多大作用,但对于jfreechat报表初学者而言,确实比一般的网上的那些例子看起来更简单一些,而且里面有足够多的注释,更加利于初学者对jfreechat报表的入门,由于本人的应用需求不够广泛的...

    jfreechat1.0

    Java jfreechat1_0.jar包

Global site tag (gtag.js) - Google Analytics