栏目导航
热点推荐
- 三十条有用的 Java 编程规则
- Java制作水印图片源码
- Java常见异常及可能的导致原因
- Java中的修饰词使用方法总结
- J2EE系统异常的处理准则
- Java中的异常、断言、日志解析(
- Java面试技巧:Java面试题集锦(
- 面向Java开发人员的Scala指南:
- Java程序员:一刻钟精通正则表达
- 网友经验分享:学好java开发的关
- 专家解答:创建表格与数据库进行
- Java远程访问Domino数据库
阅览排行
用JFreeReport做报表的实践过程
www.jz123.cn 2009-12-25 来源: 中国建站 责任编辑(袁袁) 我要投递新闻
下载jfreeReport0.8.7 地址:http://www.jfree.org/jfreereport/index.php
使用JFreeReport生成报表通常需要以下三个基本步骤:
A. 生成可通过TableModel接口访问的数据,如本例中的createData方法完成的功能。
B. 生成一个JFreeReport实例,他定义了我们如何格式化显示数据,如本例中的createReportDefinition方法完成的功能。
C. 将数据和JFreeReport实例连接起来,并且将该JFreeReport实例传给PreviewDialog的一个实例显示给用户。
下面开始>>>>>
1. 新建一个WEB工程,在WebRootlib中import 如下jar文件:jcommon-1.0.1.jar jfreereport-0.8.7.jar jfreereport-demo-0.8.7.jar jfreereport-servlet-demo-0.8.7.jar
(可在jfreereport包中解压得到)
2. 写一个Demo.java 加入到工程的src包中. 内容如下:
import java.awt.Color; import java.awt.geom.Point2D; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableModel; import org.jfree.report.ElementAlignment; import org.jfree.report.JFreeReport; import org.jfree.report.JFreeReportBoot; import org.jfree.report.ReportProcessingException; import org.jfree.report.demo.helper.DefaultCloseHandler; import org.jfree.report.demo.helper.DemoHandler; import org.jfree.report.demo.helper.PreviewHandler; import org.jfree.report.elementfactory.TextFieldElementFactory; import org.jfree.report.modules.gui.base.PreviewDialog; import org.jfree.ui.FloatDimension; import org.jfree.util.Log; public class Demo implements DemoHandler { private class HelloWorldPreviewHandler implements PreviewHandler { public HelloWorldPreviewHandler() { } public void attemptPreview() { executeReport(); } } public Demo (){ } protected void executeReport () { final TableModel data = createData(); final JFreeReport report = createReportDefinition(); report.setData(data); try { final PreviewDialog preview = new PreviewDialog(report); preview.addWindowListener(new DefaultCloseHandler()); preview.pack(); preview.setVisible(true); } catch (ReportProcessingException e) { Log.error("Failed to generate report ", e); } } private TableModel createData () { final Object[] columnNames = new String[]{"Column1", "Column2"}; final DefaultTableModel result = new DefaultTableModel(columnNames, 101); for (int i=1;i<101;i++){ result.setValueAt("用繁篦字???看看n", i, 0); result.setValueAt("简体中文输出第"+i+"次", i, 1); } return result; } |
上一篇:Java类的初始化顺序内容简介 下一篇:漫谈Java理念的转变与JVM的五大优势