急!问个有关struts1和jfreechart的问题!

mxx123 2009-09-23 01:48:40
项目里使用了SSH框架(Struts1)后,如何用Jfreechart生成柱状图和线状图啊?

希望高人们能指点小弟一下!最好能给个例子或代码!

先谢谢了!急!!!!!
...全文
216 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
uprighthonest 2009-09-30
  • 打赏
  • 举报
回复
我想有人答复这个问题,很难,我搞map的时候,问了半天,都没人理,最后还是自己搞定!
希望有人能知道,一起期待!

[Quote=引用 17 楼 mxx123 的回复:]
继续期待。。。
把查询结果LIST转成(或存到)jfreechart需要的dataset的好方法!
[/Quote]
mxx123 2009-09-30
  • 打赏
  • 举报
回复
继续期待。。。
把查询结果LIST转成(或存到)jfreechart需要的dataset的好方法!
mxx123 2009-09-29
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 uprighthonest 的回复:]
jar包当然要导入的啊,我用的是1.0.13,最新的,你去官网下载下来然后拷到lib下就行了

把查询结果LIST转成(或存到)jfreechart需要的dataset有没有更好的方法啊?
回答:我没有想到什么好方法,自己就这么做的,你如果想到,也可以给大家分享一下

[/Quote]
那文件里import哪些包啊?
阿士匹灵 2009-09-29
  • 打赏
  • 举报
回复
帮顶
uprighthonest 2009-09-29
  • 打赏
  • 举报
回复
呵呵,如果是java文件,你没引入的话,会有个红叉子,鼠标放在哪里,然后就会提示你引入什么包,或者你在那个红叉子上面,ctrl+shift+m,引入所需要的包,ctrl+shift+o,引入所有需要的包,自己试试吧,
uprighthonest 2009-09-28
  • 打赏
  • 举报
回复
我做过,不过我的是饼图的,但原理都一样的,贴一下主要的代码吧

jsp页面
//获得统计数据
List Statistics = (List)request.getAttribute("Statistics");

//生成的图片名字
String fileName=StatisticsChart.generatePieChart(session,new PrintWriter(out),580,250,Statistics);

//map映射
String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + fileName;


下面是图片显示:
<img src="<%= graphURL %>"width=580 height=250 border=0 usemap="#<%=fileName%>">


generatePieChart方法写在action里
public static String generatePieChart(HttpSession session, PrintWriter pw,int w, int h, List Statistics){
String filename = null;
PieDataset dataset = getDataSet(Statistics);
JFreeChart chart = ChartFactory.createPieChart3D(
"需求评价统计图", // 图表标题
dataset, // 数据集
true, // 是否显示图例
true, // 是否生成工具
true // 是否生成URL链接
);
chart.setBackgroundPaint(Color.white);
chart.getTitle().setFont(new Font("黑体",Font.BOLD,16));
chart.getLegend().setItemFont(new Font("宋体",Font.BOLD,12));
PiePlot pieplot = (PiePlot) chart.getPlot();
pieplot.setURLGenerator(new StandardPieURLGenerator("url","url参数",""));
pieplot.setLabelFont(new Font("宋体", 0, 12));
pieplot.setNoDataMessage("no data!");
// 设置开始角度
pieplot.setStartAngle(150D);
// 设置方向为顺时针方向
pieplot.setDirection(Rotation.CLOCKWISE);
// 设置透明度,0.5F为半透明,1为不透明,0为全透明
pieplot.setForegroundAlpha(1);
//pieplot.setExplodePercent("满意", 0.20000000000000001D);
//显示百分比,但不显示百分比后小数
//pieplot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0} = {1}({2})"));
pieplot.setLabelBackgroundPaint(java.awt.Color.white);
//pieplot.setLegendLabelToolTipGenerator(new StandardPieSectionLabelGenerator("Tooltip for legend item {0}"));//[5]
//显示百分比,并让百分比保留两位小数
pieplot.setLabelGenerator(new StandardPieSectionLabelGenerator(
"{0} ({2})", NumberFormat.getNumberInstance(),
new DecimalFormat("0.00%")));
pieplot.setSimpleLabels(true);
//Sets the interior gap and sends a PlotChangeEvent to all registered listeners.
pieplot.setInteriorGap(0.0D);//[7]
//设置扇区边框不可见
pieplot.setSectionOutlinesVisible(false);
//pieplot.setToolTipGenerator(new StandardPieToolTipGenerator());
try {
/*------得到chart的保存路径----*/
ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());
filename = ServletUtilities.saveChartAsPNG(chart, w, h, info,session);
/*------使用printWriter将文件写出----*/
ChartUtilities.writeImageMap(pw, filename, info, false);
pw.flush();
} catch (IOException e) {
e.printStackTrace();
}
return filename;
}
/**
* 获取一个饼状图的简单数据集对象
* @return
*/
private static PieDataset getDataSet(List Statistics) {
DefaultPieDataset dataset = new DefaultPieDataset();
Statistics Statistics = null;
for(int i = 0; i < Statistics.size(); i++) {
Statistics = (Statistics)Statistics.get(i);
dataset.setValue(Statistics.getStatisticsName(), Statistics.getStatisticsNumber());
}
return dataset;
}



mxx123 2009-09-28
  • 打赏
  • 举报
回复
哪位高人有结合struts1的实例啊,就给小弟一份吧!急啊!
uprighthonest 2009-09-28
  • 打赏
  • 举报
回复
jar包当然要导入的啊,我用的是1.0.13,最新的,你去官网下载下来然后拷到lib下就行了

把查询结果LIST转成(或存到)jfreechart需要的dataset有没有更好的方法啊?
回答:我没有想到什么好方法,自己就这么做的,你如果想到,也可以给大家分享一下
mxx123 2009-09-28
  • 打赏
  • 举报
回复
先谢谢以上各楼大侠的帮助。
不过还有个问题,
10楼的朋友的帖子里的jsp页面中是否要导入某些JAR包啊?请具体说一下啊!
另外,把查询结果LIST转成(或存到)jfreechart需要的dataset有没有更好的方法啊?
11楼的朋友提到的BufferedImage好像还没找到啊?
dinghun8leech 2009-09-28
  • 打赏
  • 举报
回复
应该有个方法可以得到流,页面端直接调用这个请求就行。类似于点击获得注册码图片。
OutputStream ops = response.getOutputStream()
javax.imageio.ImageIO.write(bi, "jpeg", ops);//bi 为 java.awt.image.BufferedImage
楼主查查Jfreechart的api有没有获得BufferedImage的。
lvsh870228 2009-09-25
  • 打赏
  • 举报
回复
引用,插入数据,返回图片,搞定!
mxx123 2009-09-25
  • 打赏
  • 举报
回复
期待中。。。(+_+在非技术去和灌水区的帖子被删了(+﹏+)~狂晕)
mxx123 2009-09-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 imasmallbird 的回复:]
http://topic.csdn.net/u/20090831/13/c6976093-bca6-4637-994e-c0a8bcbc0855.html

1楼的是jfreechart的官方网,上面有很多好的实例
6楼的超链接是普通的实现实例
[/Quote]
是结合struts1的?
guodong66 2009-09-23
  • 打赏
  • 举报
回复
有例子但都掺在项目里边了,楼主去csdn下载区去搜下吧,一堆一堆的。我就是从那上边找了个随便改的。
Struts1下和在Servelt下一样,不过跳转的是.do而已,如果Struts2就不同了,需要整合。呵呵。
imasmallbird 2009-09-23
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20090831/13/c6976093-bca6-4637-994e-c0a8bcbc0855.html

1楼的是jfreechart的官方网,上面有很多好的实例
6楼的超链接是普通的实现实例

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧