import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.geom.Rectangle2D;
import java.io.FileOutputStream;
import java.util.Iterator;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartRenderingInfo;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.entity.ChartEntity;
import org.jfree.chart.entity.EntityCollection;
import org.jfree.chart.entity.StandardEntityCollection;
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.CategoryItemRenderer;
import org.jfree.chart.urls.CategoryURLGenerator;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import com.hg.book.Book;
import com.hg.book.BookGraphics;
public class Test2 {
/**
* @param args
*/
public static void main(String[] args) {
try {
//创建BookGraphics
BookGraphics bg = new BookGraphics(new FileOutputStream("c:/test.jar"));
//设置查看器属性
bg.setViewerBarVisible(false);
bg.setViewerNavVisible(false);
bg.setViewerType(BookGraphics.VIEWER_TYPE_SLIDE);
bg.setViewerAnimateEnable(false);
bg.setViewerMAR(false);
//添加book
Book book = bg.addBook(400, 300);
//添加页
Graphics2D g = book.addPage();
//绘制jfreechart
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(5, "北京", "");
dataset.addValue(3 , "天津", "");
dataset.addValue(3, "太原", "");
dataset.addValue(10, "上海", "");
dataset.addValue(13, "重庆", "");
JFreeChart jfreechart = ChartFactory.createBarChart("城市温度对比", "城市", "温度", dataset,
PlotOrientation.VERTICAL, true, true, true);
jfreechart.setBackgroundPaint(Color.WHITE);
CategoryItemRenderer renderer1 = ((CategoryPlot) jfreechart.getPlot()).getRenderer();
renderer1.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());
renderer1.setItemLabelsVisible(true); //显示每个柱子上的数据
renderer1.setItemURLGenerator(new MyCategoryURLGenerator());
ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());
jfreechart.draw(g, new Rectangle2D.Double(0, 0, 400, 300), info);
//添加tooltip和超链接
EntityCollection entities = info.getEntityCollection();
if (entities != null) {
Iterator iterator = entities.iterator();
ChartEntity entity;
while (iterator.hasNext()) {
entity = (ChartEntity) iterator.next();
if (entity.getToolTipText() != null && entity.getToolTipText().length() > 0) {
Book.addToolTip(g, entity.getToolTipText(), entity.getArea());
}
if (entity.getURLText() != null && entity.getURLText().length() > 0) {
Book.addHref(g, entity.getURLText(), entity.getArea());
}
}
}
//关闭
bg.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
class MyCategoryURLGenerator implements CategoryURLGenerator {
public String generateURL(CategoryDataset arg0, int arg1, int arg2) {
return "http://php.weather.sina.com.cn/search.php?c=1&dpc=1&city=" + arg0.getRowKey(arg1);
}
}
<script type="text/javascript"> </script>