首页 > 其他分享 >jfreechart火速应用

jfreechart火速应用

时间:2022-12-05 10:04:18浏览次数:39  
标签:getTitle false jfreechart data chart 应用 vi vote 火速


JAVA中的图表方面,Jfreechart是十分不错的老大了,网上有个具体的英文手册类库下载可以参考的,下面以一个
投票的例子来个火速应用,简单介绍一下

首先,可以将投票结果以servlet的形式输出给页面。第一步要接受参数(如要显示的图形类型,是柱状图,饼形图还是其他什么样的图),
然后传入数据集,然后设置输出的类型,最后输出图形

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.DefaultPieDataset;

ublic class ChartServlet extends HttpServlet
{


public void doPost( HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{

//这里先得到一个vote的对象实例
Vote vote=getvote();


// 得到JFreeChart对象的实例
JFreeChart chart = getChart( vote );

// 设置输出对象的类型
response.setContentType( "image/jpeg" );

// 输出图形
ChartUtilities.writeChartAsJPEG( response.getOutputStream(),
100, chart, 400, 300, null);
}


public void doGet( HttpServletRequest request, HttpServletResponse response )
throws ServletException, IOException
{
doPost( request, response );
}

// 得到JFreeChart对象的实例
public static JFreeChart getChart( Vote vote )
{
JFreeChart chart = null;

// 判断是否为饼图
if( .... )
{
// 组织生成饼图的数据
DefaultPieDataset data = new DefaultPieDataset();

Iterator it = vote.getVoteitems().iterator();

//遍历数据集
while( it.hasNext() )
{
VoteItem vi = (VoteItem)it.next();
//设置要显示图形每一项的标题,具体数字(这里是投票数vi.getvotenum了)
data.setValue( vi.getTitle(), vi.getVotenum() );
}

// 判断是否为普通饼图
if( ..... )
{
chart = ChartFactory.createPieChart( vote.getTitle(),
data, false, false, false );
}
else // 3D饼图
{
chart = ChartFactory.createPieChart3D( vote.getTitle(),
data, false, false, false );
}
}
else
{
// 组织柱状图的数据
DefaultCategoryDataset data = new DefaultCategoryDataset();

Iterator it = vote.getVoteitems().iterator();
while( it.hasNext() )
{
VoteItem vi = (VoteItem)it.next();
data.addValue( vi.getVotenum(), "选项", vi.getTitle() );
} // 判断是否为普通柱状图
if( .... )
{
chart = ChartFactory.createBarChart( vote.getTitle(),
"选项", "数量", data, PlotOrientation.VERTICAL,
false, false, false );
}
else // 3D柱状图
{
chart = ChartFactory.createBarChart3D( vote.getTitle(),
"选项", "数量", data, PlotOrientation.VERTICAL,
false, false, false );
}
}
return chart;
}
}

标签:getTitle,false,jfreechart,data,chart,应用,vi,vote,火速
From: https://blog.51cto.com/u_14230175/5911333

相关文章