1、导入jar包
2.使用小例子http://blog.csdn.net/nonetracer/article/details/2056738
http://blog.csdn.net/tangleway/article/details/1685830这个较好
但是不论哪个例子都要初始化report
预览窗口生成
public static final int ROW_HEIGHT = 20; //报告:行高度 public static final int HEADER_HEIGHT = 40; //报告:报头高度 JFreeReport report = new JFreeReport(); //构造JFreeReport对象 report.setName("Report Name"); PageDefinition pd = report.getPageDefinition(); //取得报告页面定义 float pageWidth = pd.getWidth(); //取得打印材质的页宽 //定义页头 PageHeader header = new PageHeader(); LabelElementFactory title = new LabelElementFactory(); //标题元素 title.setText("统计报表"); //设置文本内容 title.setColor(Color.BLACK); //设置颜色 title.setAbsolutePosition(new Point2D.Float(0, HEADER_HEIGHT)); //设置显示位置 title.setMinimumSize(new FloatDimension(pageWidth, 36)); //设置尺寸 title.setHorizontalAlignment(ElementAlignment.LEFT); title.setVerticalAlignment(ElementAlignment.MIDDLE); title.setDynamicHeight(true); //设置是否动态调整高度(如果为true,当文本内容超出显示范围时高度自动加长) header.addElement(title.createElement()); report.setPageHeader(header); String[] columnNames = getColumnNames(); //取得报表数据域的所有列名 if (columnNames != null && columnNames.length > 0) { report.getItemBand().addElement(StaticShapeElementFactory.createHorizontalLine(null, Color.BLACK, new BasicStroke(1), 0)); //绘制表格的横线 //定义报表头 ReportHeader reportHeader = new ReportHeader(); for (int i = 0; i < columnNames.length; i++) { //字段名元素 LabelElementFactory col = new LabelElementFactory(); col.setName(columnNames[i]); col.setColor(Color.BLACK); col.setHorizontalAlignment(ElementAlignment.CENTER); col.setVerticalAlignment(ElementAlignment.MIDDLE); col.setDynamicHeight(true); col.setAbsolutePosition(new Point2D.Float((pageWidth / (columnNames.length)) * i, 0)); col.setMinimumSize(new FloatDimension(pageWidth / (columnNames.length), ROW_HEIGHT)); //设置最小尺寸 col.setBold(true); //设置是否粗体显示 col.setText(columnNames[i]); reportHeader.addElement(col.createElement()); reportHeader.addElement(StaticShapeElementFactory.createVerticalLine(null, Color.BLACK, new BasicStroke(1), col.getAbsolutePosition().getX())); //元素左侧竖线 reportHeader.addElement(StaticShapeElementFactory.createHorizontalLine(null, Color.BLACK, new BasicStroke(1), 0)); //元素上方横线 reportHeader.addElement(StaticShapeElementFactory.createVerticalLine(null, Color.BLACK, new BasicStroke(1), pageWidth)); //元素右侧竖线 report.setReportHeader(reportHeader); //字段内容元素 TextFieldElementFactory data = new TextFieldElementFactory(); data.setName(columnNames[i]); data.setColor(Color.BLACK); data.setAbsolutePosition(new Point2D.Float((pageWidth / (columnNames.length)) * i, 0)); data.setMinimumSize(new FloatDimension(pageWidth / (columnNames.length), ROW_HEIGHT)); data.setHorizontalAlignment(ElementAlignment.CENTER); data.setVerticalAlignment(ElementAlignment.MIDDLE); data.setDynamicHeight(true); data.setWrapText(new Boolean(true)); data.setNullString("-"); //如果字段内容为空,显示的文本 data.setFieldname(columnNames[i]); report.getItemBand().addElement(StaticShapeElementFactory.createHorizontalLine(null, Color.BLACK, new BasicStroke(1), 0)); report.getItemBand().addElement(data.createElement()); report.getItemBand().addElement(StaticShapeElementFactory.createHorizontalLine(null, Color.BLACK, new BasicStroke(1), -100)); report.getItemBand().addElement(StaticShapeElementFactory.createVerticalLine(null, Color.BLACK, new BasicStroke(1), data.getAbsolutePosition().getX())); report.getItemBand().addElement(StaticShapeElementFactory.createHorizontalLine(null, Color.BLACK, new BasicStroke(1), 0)); }// end for(int i=0;i<columnNames.length;i++) //最后的竖线 report.getItemBand().addElement(StaticShapeElementFactory.createVerticalLine(null, Color.BLACK, new BasicStroke(1), pageWidth)); PageFooter footer = new PageFooter(); //设置页号 PageOfPagesFunction pageFunction = new PageOfPagesFunction("PAGE_NUMBER"); //构造一个页号函数对象 pageFunction.setFormat("{0} / {1}页"); //设置页号显示格式(此处显示的格式为“1/5页”) report.addExpression(pageFunction); TextFieldElementFactory pageCount = new TextFieldElementFactory(); pageCount.setFieldname("PAGE_NUMBER"); pageCount.setColor(Color.black); pageCount.setAbsolutePosition(new Point2D.Float(0, 0)); pageCount.setMinimumSize(new FloatDimension(pageWidth, 0)); pageCount.setHorizontalAlignment(ElementAlignment.RIGHT); pageCount.setVerticalAlignment(ElementAlignment.MIDDLE); pageCount.setDynamicHeight(true); footer.addElement(pageCount.createElement()); report.setPageFooter(footer); ReportFooter reportFooter = new ReportFooter(); reportFooter.addElement(StaticShapeElementFactory.createHorizontalLine(null, Color.BLACK, new BasicStroke(1), 0)); report.setReportFooter(reportFooter);