📄 createbarmodel.java
字号:
package com.kai.jfc;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpSession;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartRenderingInfo;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis3D;
import org.jfree.chart.axis.DateAxis;
import org.jfree.chart.axis.DateTickMarkPosition;
import org.jfree.chart.axis.DateTickUnit;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.entity.StandardEntityCollection;
import org.jfree.chart.labels.ItemLabelAnchor;
import org.jfree.chart.labels.ItemLabelPosition;
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
import org.jfree.chart.labels.StandardXYItemLabelGenerator;
import org.jfree.chart.labels.StandardXYToolTipGenerator;
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.renderer.xy.StackedXYBarRenderer;
import org.jfree.chart.servlet.ServletUtilities;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.time.Month;
import org.jfree.data.time.TimeTableXYDataset;
import org.jfree.data.xy.TableXYDataset;
import org.jfree.ui.GradientPaintTransformType;
import org.jfree.ui.StandardGradientPaintTransformer;
import org.jfree.ui.TextAnchor;
import com.kai.bean.DateBean;
/**
* 类文件:CreateBarModel.java
* @author 作者: 王凯 E-mail: wk1025@126.com
* @version 创建时间:Sep 9, 2008 2:23:28 PM
* 类 CreateBarModel 的作用:
*/
public class CreateBarModel
{
public String createChart(HttpSession session, PrintWriter pw,ArrayList list)
{
String fileName = null;
TableXYDataset tablexydataset = this.createDataset(list);
DateAxis dateaxis = new DateAxis("Date");
dateaxis.setTickUnit(new DateTickUnit(DateTickUnit.MONTH,2));;
dateaxis.setTickMarkPosition(DateTickMarkPosition.MIDDLE);
NumberAxis numberaxis = new NumberAxis("%");
StackedXYBarRenderer stackedxybarrenderer = new StackedXYBarRenderer(0.10000000000000001D);
stackedxybarrenderer.setBaseItemLabelsVisible(true);
stackedxybarrenderer.setBaseItemLabelGenerator(new StandardXYItemLabelGenerator());
stackedxybarrenderer.setBaseToolTipGenerator(new StandardXYToolTipGenerator("{0} : {1} = {2} tonnes", new SimpleDateFormat("yyyy"),new DecimalFormat("#,##0")));
stackedxybarrenderer.setGradientPaintTransformer(new StandardGradientPaintTransformer(GradientPaintTransformType.HORIZONTAL));
XYPlot xyplot = new XYPlot(tablexydataset, dateaxis, numberaxis, stackedxybarrenderer);
// xyplot.setOrientation(PlotOrientation.HORIZONTAL);//把图像横过来显示
JFreeChart jfreechart = new JFreeChart("对比", xyplot);
ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());
try
{
fileName = ServletUtilities.saveChartAsPNG(jfreechart, 500, 300, info,session);// 生成图片
// Write the image map to the PrintWriter
ChartUtilities.writeImageMap(pw, fileName, info, false);
} catch (IOException e) {
e.printStackTrace();
}
pw.flush();
return fileName;
}
public Connection getConn()
{
//172.16.36.245
String url = "jdbc:mysql://localhost:3306/newdatabase";
String u = "root";
String p = "123456";
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Connection conn = null;
try {
conn = java.sql.DriverManager.getConnection(url, u, p);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
public List getDate()
{
Connection conn = this.getConn();
ArrayList list = new ArrayList();
try {
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery("select * from q91");
while(rs.next())
{
DateModel date = new DateModel();
date.setName("山东");
date.setData(rs.getDouble("shandong"));
date.setDate(rs.getString("t"));
DateModel date1 = new DateModel();
date1.setName("北京");
date1.setData(rs.getDouble("beijing"));
date1.setDate(rs.getString("t"));
list.add(date);
list.add(date1);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}
private TableXYDataset createDataset(ArrayList list1)
{
List list = this.getDate();
TimeTableXYDataset timetablexydataset = new TimeTableXYDataset();
for(int i = 0;i<list.size();i++)
{
DateModel bean = (DateModel) list.get(i);
// timetablexydataset.add(new Month(bean.getMonth(), bean.getYear()), bean.getDate(), bean.getName());
}
return timetablexydataset;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -