javajsp图表,Java生成图表

本文目录一览:

用jsp怎样生成柱状图,饼状图,折线图

JFreeChart 可以绘制饼状图,折线图,柱状图等. awt/swing里可以使用,JSP里也可以使用

JFreeChart是 Java平台下开源的图表类库,是一个完全基于Java的图表开发技术。

支持的图表类型也比较丰富,比如饼图、柱状图、散点图、仪表盘、甘特图等多种图表,

还可以生成Web图形报表。JFreeChart可导出PNG和JPEG格式的文件

例如下面的柱状图

java+jsp如何实现Uv、pv统计?框架是基于SpringMVC+hibernate实现的。

SpringMVC与Spring结合Spring是一个开源框架,Spring是于2003年兴起的一个轻量级的Java开发框架,由RodJohnson在其著作ExpertOne-On-OneJ2EEDevelopmentandDesign中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为J2EE应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spring的核心是控制反转(IoC)和面向切面(AOP)。简单来说,Spring是一个分层的JavaSE/EEfull-stack(一站式)轻量级开源框架。1.再次配置web.xmlSpring要在程序调用某个对象的时候,就要首先把这个对象的实例注入进去。Spring自己对实例、程序运行的管理构成了Spring自己的容器,第一步就是要在web.xml中注册初始化这个容器。在此之前我们先在/resources文件夹下,创建子路径META-INF,然后在这个文件夹下,创建我们后面要用到的applicationContext.xml文件,如果用过spring框架的人对这个文件都不会陌生,这是spring的配置文件。最后web.xml文件如下:metadata-complete=”true”version=”3.0″spring-dispatcherorg.springframework软件定制开发公司?web.servlet.DispatcherServletspring-dispatcher/contextConfigLocationclasspath:/META-INF/applicationContext.xmlorg.springframework.web.context.ContextLoaderListener2.配置applicationContext.xml文件在spring4之后,spring配置的bean不是在xml文件中配置了,而是采用固定扫描annotation的类,根据对象的类型或者名字自动加载,但此前提是我们仍然要在配置文件中配置好这些类所在包的路径。最后applicationContext.xml文件如下,3.创建一个Service类,UserService.javaService的创建我们还是比较推荐具体的service实现相应的接口的方式,下面我们写一个服务类,用来获取注册的用户,在包com.mark.java.service下创建接口UserService。publicinterfaceUserService{publicListgetAllUsernames();}然后再创建一个UserServiceImpl来实现此接口,@ServicepublicclassUserServiceImplimplementsUserService{publicListgetAllUsernames(){Listusers=newArrayList();users.add(“MarK”);users.add(“Ken”);users.add(“Fowafolo”);returnusers;}}注意!!!,我们要对个实现加上注释@Service,这是在告诉spring,我需要你来管理我。

用java在jsp中显示图片,求例子代码

%@ page language=”java” pageEncoding=”UTF-8″%

%@page import=”java.awt.image.BufferedImage”%

%@page import=”javax.imageio.ImageIO”%

%@page import=”java.io.File”%

%

out.clear();

response.setContentType(“image/png”);

BufferedImage image = ImageIO.read(new File(“D:\\mark.png”));

ImageIO.write(image, “png”, response.getOutputStream());

%

我这样写没有问题,你试试。我来解释一下楼上的疑问,html标签不可能引用到本地的文件,比如C:\\xx.jpg你指定的路径得是web目录下的,动态生成图片一般用servlet实现,比如验证码之类的。

如何在JSP网页中生成动态图表

JSP页面中嵌入动态图表的两种方法 :在JSP页面中插入Applet小程序 ;通过JavaBean动态生成图像。

JSP是一种广泛应用的网页设计技术 ,它是一种HTML和Java脚本混合的编程技术 ,它结合了HTML的静态特性和Java语言的动态能力 ,因此用它进行动态网页设计非常方便。在进行图像处理时 ,一般处理静态图片非常容易 ,但是 ,在实际应用中常常需要动态地在网页中生成二维的图形.

基于JFreeChart开发的一个时序图的绘制。代码如下:

实例中createDataset()方法用于创建数据集合对象。时序图的数据集合与其他数据集合不同,它需要添加一个时间段内的所有数据,通常采用TimeSeries类进行添加。该实例中通过Math类的random()方法进行随机生成。

import java.awt.*;

import java.awt.event.ActionEvent;

import

java.awt.event.ActionListener;

import java.io.BufferedInputStream;

import

java.io.DataInputStream;

import java.io.FileOutputStream;

import

java.io.IOException;

import java.net.URL;

import

java.net.URLConnection;

import java.text.DateFormat;

import

java.text.ParseException;

import java.text.SimpleDateFormat;

import

java.util.Calendar;

import java.util.Date;

import java.util.Random;

import javax.swing.JApplet;

import javax.swing.Timer;

import org.jfree.chart.*;

import

org.jfree.chart.annotations.CategoryTextAnnotation;

import

org.jfree.chart.axis.CategoryAnchor;

import

org.jfree.chart.axis.CategoryAxis;

import

org.jfree.chart.axis.CategoryLabelPositions;

import

org.jfree.chart.axis.DateAxis;

import

org.jfree.chart.axis.DateTickUnit;

import

org.jfree.chart.axis.DateTickUnitType;

import

org.jfree.chart.axis.ValueAxis;

import

org.jfree.chart.labels.StandardCategoryItemLabelGenerator;

import

org.jfree.chart.plot.CategoryPlot;

import

org.jfree.chart.plot.PlotOrientation;

import

org.jfree.chart.plot.XYPlot;

import

org.jfree.chart.renderer.category.BarRenderer;

import

org.jfree.chart.title.TextTitle;

import

org.jfree.data.category.CategoryDataset;

import

org.jfree.data.category.IntervalCategoryDataset;

import org.jfree.chart.axis.NumberAxis;

import

org.jfree.data.category.DefaultCategoryDataset;

import

org.jfree.data.gantt.Task;

import org.jfree.data.gantt.TaskSeries;

import

org.jfree.data.gantt.TaskSeriesCollection;

import

org.jfree.data.time.Day;

import org.jfree.data.time.Second;

import

org.jfree.data.time.TimeSeries;

import

org.jfree.data.time.TimeSeriesCollection;

import

org.jfree.data.xy.XYDataset;

public class shixutu extends JApplet {

//PLOT_FONT是一静态的字体常量对象,使用此对象可以避免反复用到的字体对象被多次创建

       

private static final Font PLOT_FONT = new Font(“黑体”, Font.ITALIC ,

18);

        JFreeChart chart;

//创建数据动态更新的监听

  class DataGenerator extends Timer

implements ActionListener {

        

private static final long serialVersionUID =

3977867288743720504L;

         String

equID;                                

//设备ID号

         int

totalTask;                               

//任务数

         String[][]

strTask;                          

//任务情况

public void

actionPerformed(ActionEvent actionevent) {            

addTotalObservation();

         }         DataGenerator()

{

        

 

            

super(1000,

null);

            

addActionListener(this);

            

System.out.println(“super”);

        

}

     }

  

    

//将更新的数据添加到chart中

     private void addTotalObservation()

{

     

 System.out.println(“addTotalObservation”);

         

//设置新的数据集

           

chart.getXYPlot().setDataset(createDataset());

         

//通知Jfreechart

数据发生了改变,重新绘制柱状图

          if

(chart != null)

{

             

chart.fireChartChanged();

         

}

      }

        private static void

processChart(JFreeChart chart)

                 

//设置标题字体 

                 

chart.getTitle().setFont(new Font(“隶书”, Font.BOLD,

26)); 

                 

//设置背景色 

                 

chart.setBackgroundPaint(new

Color(252,175,134)); 

                 

XYPlot plot = chart.getXYPlot();       

//获取图表的绘制属性 

                 

plot.setDomainGridlinesVisible(false); 

//设置网格不显示 

                 

//获取时间轴对象 

                 

DateAxis dateAxis = (DateAxis)

plot.getDomainAxis(); 

                 

dateAxis.setLabelFont(PLOT_FONT);  

//设置时间轴字体 

                 

//设置时间轴标尺值字体 

                 

dateAxis.setTickLabelFont(new

Font(“宋体”,Font.PLAIN,12)); 

                 

dateAxis.setLowerMargin(0.0);      

//设置时间轴上显示的最小值 

                 

//获取数据轴对象 

                 

ValueAxis valueAxis =

plot.getRangeAxis(); 

                 

valueAxis.setLabelFont(PLOT_FONT);                     

//设置数据字体 

                 

DateFormat format = new SimpleDateFormat(“mm分ss秒”);  

//创建日期格式对象 

                 

//创建DateTickUnit对象 

                 

DateTickUnit dtu = new

DateTickUnit(DateTickUnitType.SECOND,30,format); 

                 

dateAxis.setTickUnit(dtu);         

//设置日期轴的日期标签           }          //将结果输出在文件中

private static

void writeChartAsImage(JFreeChart chart)

              

FileOutputStream fos_jpg =

null; 

              

try

                  

fos_jpg = new

FileOutputStream(“D:\\test\\shixutu.jpg”); 

                  

ChartUtilities.writeChartAsJPEG(fos_jpg, 1, chart, 400, 300,

null); 

              

} catch (Exception e)

                 

e.printStackTrace(); 

              

} finally

                  

try

                      

fos_jpg.close(); 

                 

} catch (Exception e)

                  

              

          

          

//创建数据集合对象

          

public static XYDataset createDataset()

                   

//实例化TimeSeries对象 

                    

TimeSeries timeseries = new

TimeSeries(“Data”); 

                    

Second second = new Second(); 

//实例化Day

                    

                   

double d =

50D; 

                    

//添加一年365天的数据 

                    

for (int i = 0; i 500; i++)

{  

                        

d = d + (Math.random() – 0.5) * 10;

//创建随机数据 

                        

timeseries.second(day, d);

//向数据集合中添加数据 

                        

second = (Second)

second.next();  

                   

}                  

TimeSeriesCollection timeSeriesCollection =                         

new

TimeSeriesCollection(timeseries); 

                  

//返回数据集合对象 

                  

return timeSeriesCollection;           } //Applet程序初始化

public void init()

{

        // 1.

得到数据  

      XYDataset  dataset =

createDataset(); 

            

// 2.

构造chart  

            

chart =

ChartFactory.createTimeSeriesChart( 

                   

“时序图示范”, //

图表标题  

                   

“时间”, //

目录轴的显示标签–横轴  

                   

“数值”, //

数值轴的显示标签–纵轴  

                   

dataset, //

数据集  

                   

false,

                   

false, //

是否生成工具  

                   

false //

是否生成URL链接  

                   

); 

           

// 3.

处理chart中文显示问题  

           

processChart(chart); 

     

          

// 4.

chart输出图片  

           

//writeChartAsImage(chart); 

          

// 5. chart

以swing形式输出   

           

//6.使用applet输出

           

ChartPanel chartPanel = new

ChartPanel(chart);

           

chartPanel.setPreferredSize(new

java.awt.Dimension(800,500));       

           

getContentPane().add(chartPanel);          (new

DataGenerator()).start();

        

}

         public void

paint(Graphics g)

{

             if

(chart != null)

{

               

chart.draw((Graphics2D) g,

getBounds());

            

}

         }

   

public void destroy() {

    }

}

Java jsp中根据从数据库中查询出来的路径显示图片

jsp是靠加载图片路径来显示图片的,图片可以保存在项目中,也可以保存到磁盘的某个路劲下。

图片放webroot下,一般是webroot下建一个img或pic 文件夹专门存图。

jsp使用的时候img src”%=request.getContextPath()%/pic/mypic.gif”/

这样就可以加载到图片了。

怎样用JAVA来实现在网页中制作柱状图

JFreeChart是JAVA平台上的一个开放的图表绘制类库。它完全使用JAVA语言编写,是为applications, applets, servlets 以及JSP等使用所设计。JFreeChart可生成饼图(pie charts)、柱状图(bar charts)、散点图(scatter plots)、时序图(time series)、甘特图(Gantt charts)等等多种图表,并且可以产生PNG和JPEG格式的输出,还可以与PDF和EXCEL关联。

JFreeChart的主页地址为:

在这里可以找到最新版本的JFreeChart的相关信息,如说明文档、下载连接以及示例图表等。

JFreeChart目前是最好的java图形解决方案,基本能够解决目前的图形方面的需求。

IBM文档:

Javaeye社区:

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/181681.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-11-23 06:44
下一篇 2024-11-23 06:44

相关推荐

  • Java JsonPath 效率优化指南

    本篇文章将深入探讨Java JsonPath的效率问题,并提供一些优化方案。 一、JsonPath 简介 JsonPath是一个可用于从JSON数据中获取信息的库。它提供了一种DS…

    编程 2025-04-29
  • java client.getacsresponse 编译报错解决方法

    java client.getacsresponse 编译报错是Java编程过程中常见的错误,常见的原因是代码的语法错误、类库依赖问题和编译环境的配置问题。下面将从多个方面进行分析…

    编程 2025-04-29
  • Java Bean加载过程

    Java Bean加载过程涉及到类加载器、反射机制和Java虚拟机的执行过程。在本文中,将从这三个方面详细阐述Java Bean加载的过程。 一、类加载器 类加载器是Java虚拟机…

    编程 2025-04-29
  • Java腾讯云音视频对接

    本文旨在从多个方面详细阐述Java腾讯云音视频对接,提供完整的代码示例。 一、腾讯云音视频介绍 腾讯云音视频服务(Cloud Tencent Real-Time Communica…

    编程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介绍

    本文将详细介绍Java Milvus SearchParam withoutFields的相关知识和用法。 一、什么是Java Milvus SearchParam without…

    编程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java语言中的一个版本,于2014年3月18日发布。本文将从多个方面对Java 8中某一周的周一进行详细的阐述。 一、数组处理 Java 8新特性之一是Stream…

    编程 2025-04-29
  • Java判断字符串是否存在多个

    本文将从以下几个方面详细阐述如何使用Java判断一个字符串中是否存在多个指定字符: 一、字符串遍历 字符串是Java编程中非常重要的一种数据类型。要判断字符串中是否存在多个指定字符…

    编程 2025-04-29
  • VSCode为什么无法运行Java

    解答:VSCode无法运行Java是因为默认情况下,VSCode并没有集成Java运行环境,需要手动添加Java运行环境或安装相关插件才能实现Java代码的编写、调试和运行。 一、…

    编程 2025-04-29
  • Java任务下发回滚系统的设计与实现

    本文将介绍一个Java任务下发回滚系统的设计与实现。该系统可以用于执行复杂的任务,包括可回滚的任务,及时恢复任务失败前的状态。系统使用Java语言进行开发,可以支持多种类型的任务。…

    编程 2025-04-29
  • Java 8 Group By 会影响排序吗?

    是的,Java 8中的Group By会对排序产生影响。本文将从多个方面探讨Group By对排序的影响。 一、Group By的概述 Group By是SQL中的一种常见操作,它…

    编程 2025-04-29

发表回复

登录后才能评论