package chart.abs;
import java.awt.Color;
import java.awt.Font;
import java.awt.RenderingHints;
import java.io.IOException;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.AxisLocation;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.labels.*;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer3D;
import org.jfree.chart.servlet.ServletUtilities;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.general.DatasetUtilities;
import org.jfree.ui.TextAnchor;
public class BarBase
{
private String title;
private int width;
private int higth;
private String xString;
private String yString;
private double maximumBarWidth;
private double minimumBarWidth;
public String getXString()
{
return xString;
}
public void setXString(String string)
{
xString = string;
}
public String getYString()
{
return yString;
}
public void setYString(String string)
{
yString = string;
}
public BarBase()
{
maximumBarWidth = 0.080000000000000002D;
minimumBarWidth = 0.02D;
width = 500;
higth = 300;
}
public BarBase(String title)
{
maximumBarWidth = 0.080000000000000002D;
minimumBarWidth = 0.02D;
this.title = title;
}
public BarBase(int width, int higth)
{
maximumBarWidth = 0.080000000000000002D;
minimumBarWidth = 0.02D;
this.width = width;
this.higth = higth;
}
public BarBase(String title, int width, int higth)
{
maximumBarWidth = 0.080000000000000002D;
minimumBarWidth = 0.02D;
this.title = title;
this.width = width;
this.higth = higth;
}
protected CategoryDataset getCategoryDataset(String rowKeys[], String columnKeys[], double data[][])
{
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(rowKeys, columnKeys, data);
return dataset;
}
protected CategoryDataset getCategoryDataset(Map map)
{
return null;
}
public String getDefaultBar(String title, String xString, String yString, double data[][], String rowKeys[], String columnKeys[], HttpServletRequest request)
{
CategoryDataset dataset = getCategoryDataset(rowKeys, columnKeys, data);
JFreeChart chart = ChartFactory.createBarChart3D(title, xString, yString, dataset, PlotOrientation.VERTICAL, true, true, false);
CategoryPlot plot = chart.getCategoryPlot();
CategoryAxis domainAxis =(CategoryAxis) plot.getDomainAxis();
ValueAxis rAxis = plot.getRangeAxis();
/*----------设置消除字体的锯齿渲染(解决中文问题)--------------*/
chart.getRenderingHints().put(RenderingHints.KEY_TEXT_ANTIALIASING,
RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);
/*----------设置标题字体--------------------------*/
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("黑体", Font.PLAIN, 20));
/*------设置X轴坐标上的文字-----------*/
domainAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 12));
/*------设置X轴的标题文字------------*/
domainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 15));
/*------设置Y轴坐标上的文字-----------*/
rAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 12));
/*------设置Y轴的标题文字------------*/
rAxis.setLabelFont(new Font("宋体", Font.PLAIN, 15));
/*---------设置横坐标轴含义的字体---------*/
chart.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 12));
plot.setBackgroundPaint(Color.WHITE);
plot.setDomainGridlinePaint(Color.PINK);
plot.setRangeGridlinePaint(Color.PINK);
BarRenderer3D renderer = new BarRenderer3D();
renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
renderer.setBaseItemLabelsVisible(true);
renderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_LEFT));
renderer.setItemLabelAnchorOffset(10D);
renderer.setMaximumBarWidth(getMaximumBarWidth());
renderer.setMinimumBarLength(getMinimumBarWidth());
plot.setRenderer(renderer);
plot.setDomainAxisLocation(AxisLocation.TOP_OR_RIGHT);
plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_RIGHT);
String filename = "";
try
{
filename = ServletUtilities.saveChartAsPNG(chart, getWidth(), getHigth(), null, request.getSession());
}
catch (IOException e)
{
e.printStackTrace();
}
return filename;
}
public String getDefaultBar(double data[][], String rowKeys[], String columnKeys[], HttpServletRequest request)
{
CategoryDataset dataset = getCategoryDataset(rowKeys, columnKeys, data);
JFreeChart chart = ChartFactory.createBarChart3D(title, xString, yString, dataset, PlotOrientation.VERTICAL, true, true, false);
CategoryPlot plot = chart.getCategoryPlot();
CategoryAxis domainAxis =(CategoryAxis) plot.getDomainAxis();
ValueAxis rAxis = plot.getRangeAxis();
/*----------设置消除字体的锯齿渲染(解决中文问题)--------------*/
chart.getRenderingHints().put(RenderingHints.KEY_TEXT_ANTIALIASING,
RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);
/*----------设置标题字体--------------------------*/
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("黑体", Font.PLAIN, 20));
/*------设置X轴坐标上的文字-----------*/
domainAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 12));
/*------设置X轴的标题文字------------*/
domainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 15));
/*------设置Y轴坐标上的文字-----------*/
rAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 12));
/*------设置Y轴的标题文字------------*/
rAxis.setLabelFont(new Font("宋体", Font.PLAIN, 15));
/*---------设置横坐标轴含义的字体---------*/
chart.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 12));
plot.setBackgroundPaint(Color.WHITE);
plot.setDomainGridlinePaint(Color.PINK);
plot.setRangeGridlinePaint(Color.PINK);
BarRenderer3D renderer = new BarRenderer3D();
renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
renderer.setBaseItemLabelsVisible(true);
renderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_LEFT));
renderer.setItemLabelAnchorOffset(10D);
renderer.setMaximumBarWidth(getMaximumBarWidth());
renderer.setMinimumBarLength(getMinimumBarWidth());
plot.setRenderer(renderer);
plot.setDomainAxisLocation(AxisLocation.TOP_OR_RIGHT);
plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_RIGHT);
String filename = "";
try
{
filename = ServletUtilities.saveChartAsPNG(chart, getWidth(), getHigth(), null, request.getSession());
}
catch (IOException e)
{
e.printStackTrace();
}
return filename;
}
public String getDefaultBar2X(double data[][], String rowKeys[], HttpServletRequest request)
{
String columnKeys[] = {
""
};
CategoryDataset dataset = getCategoryDataset(rowKeys, columnKeys, data);
JFreeChart chart = ChartFactory.createBarChart3D(title, xString, yString, dataset, PlotOrientation.VERTICAL, true, true, false);
CategoryPlot plot = chart.getCategoryPlot();
CategoryAxis domainAxis =(CategoryAxis) plot.getDomainAxis();
ValueAxis rAxis = plot.getRangeAxis();
/*----------设置消除字体的锯齿渲染(解决中文问题)--------------*/
chart.getRenderingHints().put(RenderingHints.KEY_TEXT_ANTIALIASING,
RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);
/*----------设置标题字体--------------------------*/
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("黑体", F
没有合适的资源?快使用搜索试试~ 我知道了~
jfreechart的封装用例
共37个文件
class:13个
java:12个
jsp:4个
5星 · 超过95%的资源 需积分: 4 15 下载量 168 浏览量
2009-10-27
14:30:41
上传
评论
收藏 46KB RAR 举报
温馨提示
这个文件存放的jfreechart封装以后的类,另外也写了测试用的servlet,运行后可以看到效果图。以后要用jfreechart很方便的哟。由于包比较大,所以需要另外导入
资源推荐
资源详情
资源评论
收起资源包目录
test.rar (37个子文件)
test
.settings
com.genuitec.eclipse.j2eedt.core.prefs 1KB
org.eclipse.ltk.core.refactoring.prefs 137B
org.eclipse.core.resources.prefs 124B
src
test
Jfree.java 8KB
TestDate.java 499B
TestChart.java 7KB
TestJfree.java 8KB
JfreeRender.java 3KB
ChartTest.java 2KB
chart
pie
Pie.java 116B
line
Line.java 121B
bar
Bar.java 116B
abs
PieBase.java 8KB
BarBase.java 10KB
LineBase.java 8KB
.project 1KB
WebRoot
jfreeTest.jsp 1KB
META-INF
MANIFEST.MF 39B
WEB-INF
web.xml 1KB
classes
test
Jfree$LabelGenerator.class 1KB
JfreeRender.class 4KB
TestDate.class 956B
TestJfree.class 6KB
ChartTest.class 1KB
Jfree.class 7KB
TestChart.class 6KB
chart
pie
Pie.class 259B
line
Line.class 265B
bar
Bar.class 259B
abs
LineBase.class 9KB
PieBase.class 8KB
BarBase.class 9KB
lib
jfree1.jsp 630B
chart.jsp 2KB
JfreeRender.jsp 3KB
.mymetadata 286B
.classpath 589B
.myeclipse
共 37 条
- 1
资源评论
- klzsqing2014-09-14很有用,能运行
kodes
- 粉丝: 1
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功