Struts2学习笔记18:JFreeChart

网友投稿 542 2022-05-29

Struts2

学习笔记

18

JFreeChart

二十一,二十二讲

学习内容:

1.

Struts2学习笔记18:JFreeChart

两个简单的JFreeChart实例

2.

将JFreeChart生成的图片保存到本地磁盘上

3.

在页面上显示JFreeChart图片

首要工作:

导入相关包(从课件中导入,在网上下载的最新版本的JFreeChart显示中文的时候出现乱码)

jcommon-1.0.12.jar , jfreechart-1.0.9.jar

详细内容:

1.

制作一个饼图

,将其中一些方法的参数信息当作注释,显示出来,但是在真正的编写代码时候,主要是参考API文档

package test;import java.awt.Font;import org.jfree.chart.ChartFactory;import org.jfree.chart.ChartFrame;import org.jfree.chart.JFreeChart;import org.jfree.chart.plot.PiePlot;import org.jfree.data.general.DefaultPieDataset;public class TestJFreeChart1 {public static void main(String[] args) {//先为饼图准本数据 DefaultPieDataset dpd = new DefaultPieDataset();dpd.setValue( "管理人员" , 30 );dpd.setValue( "开发人员" , 50 );dpd.setValue( "销售人员" , 42 );dpd.setValue( "策划人员" , 15 ); //创建图表 //createPieChart(java.lang.String title, PieDataset dataset, boolean legend, boolean tooltips, boolean urls)  JFreeChart chart = ChartFactory.createPieChart( "公司人员分布图" , dpd , true , true , true );//获取plot PiePlot plot = (PiePlot)chart.getPlot();//设置plot的字体类型,即"管理人员","开发人员","销售人员","策划人员"的字体类型 //plot.setLabelFont(java.awt.Font font)  //public Font(String name, int style, int size) plot.setLabelFont(new Font("隶书", Font.BOLD + Font.ITALIC, 14));//ChartFrame(java.lang.String title, JFreeChart chart)  ChartFrame cf = new ChartFrame( "某公司人员分布图" , chart );        添加代码处cf.pack();cf.setVisible( true );}}

运行效果如图所示:

2.

制作一个柱形图

package test;import java.awt.Font;import javax.swing.JPanel;import org.jfree.chart.ChartFactory;import org.jfree.chart.ChartPanel;import org.jfree.chart.JFreeChart;import org.jfree.chart.axis.CategoryAxis;import org.jfree.chart.axis.ValueAxis;import org.jfree.chart.plot.CategoryPlot;import org.jfree.chart.plot.PlotOrientation;import org.jfree.chart.title.LegendTitle;import org.jfree.chart.title.TextTitle;import org.jfree.data.category.DefaultCategoryDataset;import org.jfree.ui.ApplicationFrame;public class TestJFreeChart2_1 extends ApplicationFrame{private static final long serialVersionUID = -3361537106012344957L;public TestJFreeChart2_1 ( String title){super(title);this.setContentPane(createPanel());}public static DefaultCategoryDataset createCategory() {DefaultCategoryDataset dcd = new DefaultCategoryDataset();dcd.setValue(10, "aa", "管理人员");dcd.setValue(25, "bb", "销售人员");dcd.setValue(38, "cc", "开发人员");dcd.setValue(40, "dd", "策划人员");return dcd;}public static JFreeChart createChart(DefaultCategoryDataset dcd) {JFreeChart chart = ChartFactory.createBarChart3D("公司人员分布图", "人员分布","人员数量", dcd, PlotOrientation.VERTICAL, true, false, false);//设置chart的主题字体 chart.setTitle(new TextTitle("某公司人员分布图", new Font("隶书", Font.BOLD, 32)));CategoryPlot plot = (CategoryPlot) chart.getPlot();//设置横轴的字体 CategoryAxis cateAxis = plot.getDomainAxis();cateAxis.setLabelFont(new Font("隶书", Font.BOLD + Font.ITALIC, 14));//设置纵轴的字体 ValueAxis valueAxis= plot.getRangeAxis();valueAxis.setLabelFont(new Font("隶书", Font.BOLD + Font.ITALIC, 14));//说明部分的字体,对应于"aa","bb","cc","dd"的字体 LegendTitle legend = chart.getLegend();legend.setItemFont(new Font("宋体", Font.BOLD + Font.ITALIC, 14));return chart;}public static JPanel createPanel(){JFreeChart chart = createChart(createCategory());return new ChartPanel(chart);}public static void main(String[] args) {TestJFreeChart2_1 chart = new TestJFreeChart2_1("某公司");chart.pack();chart.setVisible( true );}}

运行效果:

3.

保存JFreeChart生成的图片到本地磁盘

在第一部分中红色标记出添加代码:

//保存为JPEG格式的图片 // OutputStream os1 = new FileOutputStream("abcd.jpeg"); // ChartUtilities.writeChartAsJPEG(os1 , chart , 800 , 600 ); //保存为PNG格式的图片 OutputStream os2 = new FileOutputStream("abcd.png");ChartUtilities.writeChartAsPNG( os2 , chart , 800 , 600 );

注:

保存成JPEG格式的图片被渲染上了一层橙色,PNG格式的图片没有被渲染

4.

在网页上显示JFreeChart生成的图片

1.

导入相关的包

2.

修改web.xml文件,添加如下代码:(该代码可以从API文档中获取)

DisplayChartorg.jfree.chart.servlet.DisplayChartDisplayChart/DisplayChart

3.

新建jfreechart.jsp页面写入一下代码:

<%@ page language="java" contentType="text/html; charset=GB18030"pageEncoding="GB18030"%><%@ page import="org.jfree.data.general.DefaultPieDataset"%><%@ page import="org.jfree.chart.JFreeChart"%><%@ page import="org.jfree.chart.ChartFactory"%><%@ page import="org.jfree.chart.plot.PiePlot"%><%@ page import="java.awt.Font"%><%@page import="org.jfree.chart.servlet.ServletUtilities;"%>Insert title here<%%><%DefaultPieDataset dpd = new DefaultPieDataset();dpd.setValue("管理人员", 30);dpd.setValue("开发人员", 50);dpd.setValue("销售人员", 42);dpd.setValue("策划人员", 15);JFreeChart chart = ChartFactory.createPieChart("公司人员分布图", dpd,true, true, true);PiePlot plot = (PiePlot) chart.getPlot();plot.setLabelFont(new Font("隶书", Font.BOLD + Font.ITALIC, 14));//ChartFrame cf = new ChartFrame("某公司人员分布图", chart); //返回文件名filename,图片位于tomcat的临时目录下 String fileName1 = ServletUtilities.saveChartAsPNG(chart, 800, 600, session);String url1 = request.getContextPath() + "/DisplayChart?filename=" +  fileName1;//String fileName2 = ServletUtilities.saveChartAsJPEG(chart , 800 , 600 , session ); //String url2 = request.getContextPath() + "/DisplayChart?filename=" +  fileName2; %>" width="800" height="600"/>

/

//注:我装的IE 7.0 不支持 JPEG格式的图片,支持PNG格式的图片

//但是 火狐浏览器支持JPEG与PNG格式的图片

Struts

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Android通用流行框架汇总
下一篇:【案例分享】华为云企业级Redis:助力VMALL打造先进特征平台
相关文章