package com.hjp.shop.controller;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Font;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.StandardChartTheme;
import org.jfree.chart.labels.StandardPieToolTipGenerator;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PiePlot3D;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.DefaultPieDataset;
import com.hjp.shop.model.Product;
import com.hjp.shop.model.Salesitem;
import com.jfinal.core.Controller;
import com.jfinal.kit.PathKit;
public class ReportController extends Controller {
public void chart(){
//步骤1:创建CategoryDataset对象(准备数据)
CategoryDataset dataset = createDataset();
DefaultPieDataset pieDataset = createPieDataset();
//步骤2:根据Dataset 生成JFreeChart对象,以及做相应的设置
JFreeChart freeChart = createChart(dataset);
JFreeChart freeChart2 = createPieChart(pieDataset);
//步骤3:将JFreeChart对象输出到文件,Servlet输出流等
String path = PathKit.getWebRootPath();
String path1 =path + "\\img\\report\\rep.png";
String path2 =path + "\\img\\report\\pie.png";
saveAsFile(freeChart, path1, 600, 400);
saveAsFile(freeChart2, path2, 500, 400);
render("report.html");
}
//保存为文件
public static void saveAsFile(JFreeChart chart, String outputPath, int weight, int height) {
FileOutputStream out = null;
try {
File outFile = new File(outputPath);
if (!outFile.getParentFile().exists()) {
outFile.getParentFile().mkdirs();
}
out = new FileOutputStream(outputPath);
//保存为PNG文件
ChartUtilities.writeChartAsPNG(out, chart, weight, height);
//保存为JPEG文件
//ChartUtilities.writeChartAsJPEG(out, chart, 500, 400);
out.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (out != null) {
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
//根据CategoryDataset生成JFreeChart对象
public static JFreeChart createChart(CategoryDataset categoryDataset) {
//创建主题样式
StandardChartTheme standardChartTheme=new StandardChartTheme("CN");
//设置标题字体
standardChartTheme.setExtraLargeFont(new Font("隶书",Font.BOLD,20));
//设置图例的字体
standardChartTheme.setRegularFont(new Font("宋书",Font.PLAIN,15));
//设置轴向的字体
standardChartTheme.setLargeFont(new Font("宋书",Font.PLAIN,15));
//应用主题样式
ChartFactory.setChartTheme(standardChartTheme);
JFreeChart jfreechart = ChartFactory.createBarChart("产品销量图", //标题
"产品", //categoryAxisLabel (category轴,横轴,X轴的标签)
"数量", //valueAxisLabel(value轴,纵轴,Y轴的标签)
categoryDataset, // dataset
PlotOrientation.VERTICAL,
true, // legend
false, // tooltips
false); // URLs
//以下的设置可以由用户定制,也可以省略
CategoryPlot plot = (CategoryPlot) jfreechart.getPlot();
//背景色 透明度
plot.setBackgroundAlpha(0.5f);
//前景色 透明度
plot.setForegroundAlpha(0.5f);
//其它设置可以参考 CategoryPlot
return jfreechart;
}
/**
* 创建CategoryDataset对象
*
*/
public static CategoryDataset createDataset() {
List<Salesitem> items = Salesitem.dao.getAllItem();
DefaultCategoryDataset categoryDataset = new DefaultCategoryDataset();
for (Salesitem salesitem : items) {
String name = Product.dao.findById(salesitem.getInt("productid")).getStr("name");
categoryDataset.addValue(salesitem.getNumber("count"), "", name);
}
return categoryDataset;
}
public static DefaultPieDataset createPieDataset() {
List<Salesitem> items = Salesitem.dao.getAllItem();
DefaultPieDataset dfp = new DefaultPieDataset();
for (Salesitem salesitem : items) {
String name = Product.dao.findById(salesitem.getInt("productid")).getStr("name");
dfp.setValue(name,salesitem.getNumber("count"));
}
return dfp;
}
public static JFreeChart createPieChart(DefaultPieDataset dfp){
//创建主题样式
StandardChartTheme standardChartTheme=new StandardChartTheme("CN");
//设置标题字体
standardChartTheme.setExtraLargeFont(new Font("隶书",Font.BOLD,20));
//设置图例的字体
standardChartTheme.setRegularFont(new Font("宋书",Font.PLAIN,15));
//设置轴向的字体
standardChartTheme.setLargeFont(new Font("宋书",Font.PLAIN,15));
//应用主题样式
ChartFactory.setChartTheme(standardChartTheme);
JFreeChart chart = ChartFactory.createPieChart3D("产品销量饼图",dfp, true, true, true);
PiePlot3D plot = (PiePlot3D) chart.getPlot();
// 图形边框颜色
plot.setBaseSectionOutlinePaint(Color.RED);
// plot.setBaseSectionPaint(Color.WHITE);
// 图形边框粗细
plot.setBaseSectionOutlineStroke(new BasicStroke(1.0f));
// 指定图片的透明度(0.0-1.0)
plot.setForegroundAlpha(0.65f);
// 指定显示的饼图上圆形(false)还椭圆形(true)
plot.setCircular(true);
// 设置第一个 饼块section 的开始位置,默认是12点钟方向
plot.setStartAngle(360);
// 设置鼠标悬停提示
plot.setToolTipGenerator(new StandardPieToolTipGenerator());
return chart;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
名校毕设:基于HTML的网上商城项目源码.zip
共138个文件
html:35个
java:19个
jpg:19个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 60 浏览量
2024-09-01
13:35:21
上传
评论
收藏 10.52MB ZIP 举报
温馨提示
①项目为计算机类项目,适合计算机,电子信息,软件工程,自动化等信息化科目的学生和工作者 ②项目只适合个人学习,毕设课设等参考,个人能力的提升,不可用于商业用途 ③项目资料齐全,内部附有详细的解释说明,方便研读学习,具有学习参考意义 ④项目已经经过验证,并且得到过认可,能够稳定运行 ①项目为计算机类项目,适合计算机,电子信息,软件工程,自动化等信息化科目的学生和工作者 ②项目只适合个人学习,毕设课设等参考,个人能力的提升,不可用于商业用途 ③项目资料齐全,内部附有详细的解释说明,方便研读学习,具有学习参考意义 ④项目已经经过验证,并且得到过认可,能够稳定运行 ①项目为计算机类项目,适合计算机,电子信息,软件工程,自动化等信息化科目的学生和工作者 ②项目只适合个人学习,毕设课设等参考,个人能力的提升,不可用于商业用途 ③项目资料齐全,内部附有详细的解释说明,方便研读学习,具有学习参考意义 ④项目已经经过验证,并且得到过认可,能够稳定运行
资源推荐
资源详情
资源评论
收起资源包目录
名校毕设:基于HTML的网上商城项目源码.zip (138个子文件)
bootstrap.css 124KB
bootstrap.min.css 123KB
icon.css 8KB
zTreeStyle.css 6KB
datepicker.css 4KB
my.css 349B
bofy.css 271B
zTreeStandard.gif 5KB
loading.gif 381B
hot.gif 157B
new.gif 129B
19.gif 69B
line_conn.gif 45B
.gitignore 227B
css.html 6KB
head.html 4KB
head1.html 3KB
index.html 3KB
update.html 2KB
search.html 2KB
register.html 2KB
order.html 2KB
searchOK.html 2KB
list.html 2KB
add.html 2KB
list.html 2KB
listUser.html 1KB
detail.html 1KB
search.html 1KB
searchUser.html 1KB
add.html 1KB
cart.html 1KB
addUser.html 1KB
mycart.html 1KB
list.html 1012B
myOrder.html 1008B
userUpdate.html 987B
detail.html 915B
login.html 898B
index.html 898B
tail.html 895B
userinfo.html 885B
updatePassword.html 843B
list.html 799B
selfServer.html 711B
index.html 645B
uploadfile.html 586B
report.html 342B
addOk.html 153B
shopping.iml 484B
jetty-server-8.1.8.jar 2.69MB
mysql-connector-java-8.0.13.jar 2.03MB
jfreechart-1.0.14.jar 1.39MB
freemarker-2.3.16.jar 860KB
c3p0-0.9.1.2.jar 596KB
commons-collections-3.2.1.jar 562KB
commons-collections.jar 558KB
log4j-1.2.16.jar 470KB
JFinal-bin-with-src-1.3.jar 416KB
jcommon-1.0.17.jar 303KB
commons-httpclient-3.1.jar 298KB
commons-beanutils-1.8.0.jar 226KB
commons-lang.jar 203KB
json-lib-2.4-jdk15.jar 155KB
ezmorph-1.0.6.jar 84KB
logkit-1.0.1.jar 70KB
cos-26Dec2008.jar 56KB
commons-logging.jar 54KB
ReportController.java 7KB
ProductController.java 6KB
UserController.java 4KB
OrderControlller.java 3KB
User.java 3KB
Product.java 2KB
CategoryController.java 2KB
ShopConfig.java 2KB
AdminControlller.java 2KB
Category.java 2KB
CartController.java 2KB
Salesorder.java 1KB
IndexController.java 1KB
LoginInterceptor.java 898B
Cart.java 837B
Salesitem.java 647B
CartItem.java 579B
UserInterceptor.java 503B
AdminInterceptor.java 472B
head.jpg 34KB
8.jpg 17KB
9.jpg 15KB
4.jpg 14KB
head1.jpg 12KB
14.jpg 12KB
3.jpg 11KB
12.jpg 11KB
footer.jpg 10KB
13.jpg 10KB
15.jpg 8KB
6.jpg 6KB
10.jpg 6KB
共 138 条
- 1
- 2
资源评论
不会倒的鸡蛋
- 粉丝: 1609
- 资源: 310
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功