`
smallmonkeandyjj
  • 浏览: 6408 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

用java来画图(部分)

阅读更多
package com.MonKey.dao.impl;

import java.awt.Color;
import java.io.File;
import java.io.IOException;
import java.util.Date;
import java.util.List;

import org.hibernate.SessionFactory;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import org.jfree.chart.servlet.ServletUtilities;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import org.springframework.orm.hibernate3.HibernateTemplate;

import com.MonKey.dao.ElecDayDao;
import com.MonKey.dao.ElecHourCurveDao;
import com.MonKey.entity.ElecTranhour;

public class ElecHourCurveDaoImpl implements ElecHourCurveDao {
   
private HibernateTemplate template;
public void setSessionFactory(SessionFactory session) {
this.template = new HibernateTemplate(session);
}

public String getImageUrl(boolean a,boolean b,boolean c,String id) {
    
String urlstr="";
try {
List list= template.find("from ElecTranhour where id.elecTranid=?",id);
urlstr= this.getImages(a, b, c, list);
} catch (IOException e) {
e.printStackTrace();
}
return urlstr;
}

//产生小时的电流或者电压数据又或者功率
public String getImages(boolean a,boolean b,boolean c, List<ElecTranhour> list) throws IOException{

String title = "小时电流数据走势图";
        // 曲线图X轴提示
        String domain = "时间段";
        // 曲线图Y轴提示
        String range = "电流数据";

    XYSeries xsa = new XYSeries("A相电流");
        // 创建时间数据源,每一个TimeSeries在图上是一条曲线
        XYSeries xsb = new XYSeries("B相电流");
        // 创建时间数据源,每一个TimeSeries在图上是一条曲线
        XYSeries xsc = new XYSeries("C相电流");
        for (int j = 0; j < list.size(); j++) {
        ElecTranhour t= list.get(j);
        Date date= t.getId().getElecHdate();
        //电流数据图
          xsa.add(date.getHours()+j,t.getElecAcurrent());
          xsb.add(date.getHours()+j,t.getElecBcurrent());
          xsc.add(date.getHours()+j,t.getElecCcurrent());

}
        // 时间曲线数据集合
        XYSeriesCollection xysc = new XYSeriesCollection();
        xysc.removeAllSeries();
        if(a){
    xysc.addSeries(xsa);
        }
        if(b){
         xysc.addSeries(xsb);
        }
        if(c){
         xysc.addSeries(xsc);
        }
        //时间曲线元素
        JFreeChart chart = ChartFactory.createXYLineChart(title, domain, range, xysc,PlotOrientation.VERTICAL,true,true,false);
        XYPlot xyplot=(XYPlot)chart.getPlot();
        XYLineAndShapeRenderer xyl=(XYLineAndShapeRenderer) xyplot.getRenderer();
        //判断
        if(a){
        xyl.setSeriesPaint(0, new Color(255,0,0));
        if(b){
        xyl.setSeriesPaint(1, new Color(0,0,255));
        if(c)
        xyl.setSeriesPaint(2, new Color(0,255,0));
        }else{
        if(c)
        xyl.setSeriesPaint(1, new Color(0,255,0));
        }
        }else{
        if(b){
          xyl.setSeriesPaint(0, new Color(0,0,255));
          if(c)
          xyl.setSeriesPaint(1, new Color(0,255,0));
        }else{
        if(c)
          xyl.setSeriesPaint(0, new Color(0,255,0));
        }
        }
      
  
      //创建文件并将图片地址传递到页面
       String filename = ServletUtilities.saveChartAsPNG(chart,600,300,
        null,null);
String graphURL = "../displayChart?filename="+ filename;

  return graphURL;
}

}
分享到:
评论

相关推荐

    java画图板程序代码

    Java 画图板程序的结构主要包含了以下几个部分: (1)主窗口(JFrame):用于显示画板的主窗口。 (2)工具栏(JToolBar):提供了基本的绘图工具,如画笔、直线、椭圆、矩形等。 (3)画板(DrawCanvas):用于...

    JAVA简易画图板

    7. **图像保存与打开**:保存功能可能使用了`java.awt.image.BufferedImage`类来保存用户的画作到磁盘,以图片格式(如JPEG或PNG)存储。打开功能则读取这些图片文件,将它们加载到`BufferedImage`对象中,并在画布...

    java模拟画图,

    在Java编程语言中,模拟画图是一个有趣且实用的领域,尤其对于开发用户界面和图形应用程序的程序员来说。Java提供了一套强大的图形库,使得创建类似Windows画图这样的应用程序成为可能。下面我们将深入探讨如何使用...

    java版本画图小程序

    总的来说,这个Java版本的画图小程序是一个基础的图形界面应用,展示了Java Swing库在构建桌面应用上的能力,以及Java 2D API在图形绘制方面的强大功能。虽然目前的功能较为基础,但开发者计划在未来的更新中加入...

    Java简易画图板

    总的来说,"Java简易画图板"项目涵盖了Java GUI编程、图形绘制、事件处理以及基础的用户交互设计等多个方面,是学习和实践Java图形编程的一个良好实例。通过这个项目,开发者可以深入了解Java在图形应用中的应用,...

    Java GUI 画图软件

    这类软件通常使用Java的AWT(Abstract Window Toolkit)或Swing库来构建界面和处理图形绘制。下面我们将深入探讨Java GUI画图软件的相关知识点。 1. **Java GUI基础** Java GUI是Java编程语言中的一个关键部分,...

    画图工具JAVA源代码

    总结来说,这个"画图工具JAVA源代码"项目涵盖了Java基础、GUI编程、事件处理、Java 2D绘图以及文件I/O等多方面的知识。通过学习和研究这个项目,开发者不仅可以提升Java编程技能,还能了解如何创建一个实际的图形...

    java swing 画图板

    6. **保存和加载图片**:为了实现保存和加载功能,开发者可能使用了Java的图像I/O库(javax.imageio),如`ImageIO.write()`方法来保存用户的作品为图片文件,`ImageIO.read()`来加载已有的图片。 7. **用户交互**...

    用Java开发的画图板

    本项目名为“用Java开发的画图板”,其目标是实现一个简单易用的画图工具,支持用户绘制点、直线、矩形、圆形以及三角形等基本形状。 首先,`Painter.java`文件很可能是这个程序的核心代码,它可能包含了主类,用于...

    java写的画图软件

    在标签中,“java画图软件”指出了这个项目的主要功能,即使用Java进行图像编辑。画图软件通常会包含基本的绘图工具,如画笔、直线、矩形、椭圆、填充、擦除等,以及颜色选择、撤销/重做操作等功能。这些功能的实现...

    cn.rar_JAVA画图程序_java画图_画图_画图 java

    综上所述,这个“JAVA画图程序”可能包含了上述一些或全部的Java图形编程概念和技术,对于学习和实践Java图形界面开发的初学者来说,是一个宝贵的资源。通过解压和研究这些文件,你可以更深入地了解Java如何实现图形...

    Java简单画图板---画图,保存,打开,擦除

    1. **图形绘制**:在Java中,我们可以使用`Graphics2D`类来进行图形绘制。它继承自`Graphics`,提供了更多的高级特性,如旋转、缩放、抗锯齿等。在`JPanel`的`paintComponent(Graphics g)`方法中,我们可以获取到`...

    java画图程序(附源码).rar

    Java画图程序是一种基于Java编程语言开发的图形用户界面(GUI)应用,它允许程序员创建和展示各种图形。在这个特定的“java画图程序(附源码).rar”压缩包中,包含了实现画图功能的源代码,使得学习者或开发者能够...

    drawingTool_java.rar_java画图_画图JAVA_画图板 java

    以上就是关于“drawingTool_java.rar”压缩包中Java画图程序的一些关键知识点。这个程序不仅展示了GUI编程的基本原理,还涉及到图形绘制、事件处理、用户交互等多个方面的内容,是学习Java桌面应用开发的一个良好...

    java仿Windows画图

    这个程序通常会使用Java的Swing或JavaFX库来创建交互式的画布,允许用户进行基本的绘图操作,如选择颜色、线条宽度,以及绘制点、线、形状等。 首先,我们要了解Java Swing库。Swing是Java的标准GUI工具包,它提供...

    用JAVA编写的画图程序(含文档)

    而“画图程序”很显然是这个Java画图应用的可执行文件,可能是一个`.jar`文件,可以通过Java虚拟机运行。 总的来说,这个项目提供了一个学习和实践Java图形编程的实例,用户可以通过阅读代码、运行程序和查看说明...

    JAVA简易画图工具

    本项目名为"JAVA简易画图工具",其核心是利用Java的Graphics2D API来实现基本的绘图功能,包括画线、画圆、画矩形,并且提供了颜色选择,便于用户进行创意创作或学习实践。 Graphics2D是Java 2D API的一部分,它是...

    Java画图板应用

    为了提供类似Windows画图板的橡皮擦功能,Java画图板应用可能实现了两种模式:一种是使用特定的橡皮擦工具,另一种是将画笔颜色设置为背景色,从而达到擦除的效果。此外,添加形状绘制功能,如矩形、圆形和多边形,...

    JAVA实现画图板

    2. **图形绘制**: 在Java中,我们可以使用`java.awt.Graphics`类及其子类`java.awt.Graphics2D`来执行图形绘制。这些类提供了大量的方法,如`drawLine()`, `drawRect()`, `drawOval()`, `fillPolygon()`等,用于在...

    用java编的画图板 功能齐全 外观精美

    总的来说,这个Java画图板项目是一个集多功能与美观界面于一体的软件,展示了Java在GUI应用开发中的强大能力。其丰富的图形操作和优秀的交互设计,使其成为学习和实践Java GUI编程的一个良好实例。

Global site tag (gtag.js) - Google Analytics