软件世界网 购物 网址 三丰软件 | 小说 美女秀 图库大全 游戏 笑话 | 下载 开发知识库 新闻 开发 图片素材
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
移动开发 架构设计 编程语言 Web前端 互联网
开发杂谈 系统运维 研发管理 数据库 云计算 Android开发资料
  软件世界网 -> Web前端 -> JFreeChart与MySQL数据库结合使用 -> 正文阅读
Web前端 最新文章
10分钟
SSM框架SSM项目源码SSM源码下载java框架整合
javascript入门
JavaScript常用对象Array(2)
8.Smarty3:模版中的内置函数
表单脚本
iTextSharp5.0页眉页脚及Asp.net预览的实现
MVC基础学习—理论篇
JavaScript
http协议中get与post区别详解

[Web前端]JFreeChart与MySQL数据库结合使用

  2015-01-17 11:03:17
import org.jfree.ui.ApplicationFrame;
import iaqms.com.CustomRenderer;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JPanel;
import java.awt.Color;
import java.awt.Font;
import java.awt.GradientPaint;
import java.awt.RenderingHints;
import javax.swing.JPanel;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.StandardChartTheme;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.CategoryLabelPositions;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.axis.NumberTickUnit;
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
import org.jfree.chart.labels.StandardPieSectionLabelGenerator;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PiePlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.RingPlot;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.chart.title.LegendTitle;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.general.PieDataset;
import org.jfree.ui.RefineryUtilities;
public class PieChartDB extends ApplicationFrame {
private static final long  serialVersionUID = 1L;

public static void main(String[] args) {
 PieChartDB piechart = new PieChartDB("饼状图");
 piechart.pack();
 RefineryUtilities.centerFrameOnScreen(piechart);
 piechart.setVisible(true);
}
 
//构造函数产生实例
public PieChartDB(String number){
 super(number);
 setContentPane(createpiePanel());
}
//生成报表的面板
public static JPanel createpiePanel() {
  JFreeChart jfreechart = createChart(createDataset());
  return new ChartPanel(jfreechart, false);
 }
 
private static JFreeChart createChart(PieDataset dataset){
 
        //解决乱码问题(不能显示中文的问题)
   StandardChartTheme mChartTheme = new StandardChartTheme("CN");  
       mChartTheme.setLargeFont(new Font("黑体", Font.BOLD, 20));  
       mChartTheme.setExtraLargeFont(new Font("宋体", Font.PLAIN, 15)); //标题 
       mChartTheme.setRegularFont(new Font("宋体", Font.PLAIN, 15));  
       ChartFactory.setChartTheme(mChartTheme);   
       //生成饼状图的对象
       JFreeChart chart = ChartFactory.createPieChart(
         "图书销量统计图",//图标标题
         dataset, //数据
         true,//是否显示图例
         false,//是否显示工具提示
         false//是否生成url
       );
            //设置一系列的属性
       //获得饼图的Plot对象
       PiePlot plot = (PiePlot)chart.getPlot();
       //用来显示标注的注解,{0}:{1}用来设置显示的格式
            plot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0}:{1}"));
       plot.setBackgroundPaint(Color.gray);//设置背景色
           //设置简单标签
            plot.setSimpleLabels(true);
            //标题
            TextTitle texttitle=chart.getTitle();
            texttitle.setFont(new Font("宋体", Font.BOLD, 30));
            //图示
            LegendTitle legendtitle =chart.getLegend();
            legendtitle.setItemFont(new Font("宋体", Font.BOLD, 14));
            //设定背景透明度(0-1.0之间)
       plot.setBackgroundAlpha(0.5f);
       //设定前景透明度(0-1.0之间)
       plot.setForegroundAlpha(0.60f);
       return chart;
      
}
 
private static PieDataset createDataset() {
 double[][] table = null;
 String[] name = null;
 String[] number = null;
 int result = 0;
 try{
  Class.forName("com.mysql.jdbc.Driver").newInstance();
  Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/sale", "root", "fab");
  ResultSet rs = conn.createStatement().executeQuery("select name,number from sale");
  // 取得行数
  if (rs.last()){
   result = rs.getRow();
   rs.beforeFirst(); // 指针回滚
  }
  table = new double[result][rs.getMetaData().getColumnCount() - 1];// 定义存放数据的二维数组
  name = new String[result];
  number = new String[rs.getMetaData().getColumnCount() - 1]; // 定义存放数据表头的一维数组
  rs.next();
  for (int j = 0; j < rs.getMetaData().getColumnCount() - 1; j++) {
   number[j] = rs.getMetaData().getColumnName(j + 2); // 取出表头并存放数组
  }
  int i = 0;
  rs.beforeFirst();
  while (rs.next()) {
   name[i] = rs.getString(1);
   for (int j = 0; j < rs.getMetaData().getColumnCount() - 1; j++)
    table[i][j] = rs.getDouble(j + 2); // 取出数据并存入二维数组
   i++;
  }
  conn.close(); // 关闭连接
  rs.close(); // 关闭查询
 } catch (Exception ex) {
  System.err.println("Exception:" + ex.getMessage());
 }
    //创建DefaultPieDataset类型的数据集,并行数据集中添加数据(从数据库中取的数据)
 DefaultPieDataset dataset = new DefaultPieDataset(); 
 for (int i = 0; i < number.length; i++)
  for (int j = 0; j < result; j++) {
dataset.setValue(name[j],table[j][i] ); 
//调试用
   System.out.println(table[j][i]);
   System.out.println(name[j]);
  }
 return dataset;
}
}
数据库脚本:
CREATE DATABASE /*!32312 IF NOT EXISTS*/`sale` /*!40100 DEFAULT CHARACTER SET gbk */;
USE `sale`;
DROP TABLE IF EXISTS `sale`;
CREATE TABLE `sale` (
  `name` varchar(150) default NULL COMMENT '书名',
  `number` varchar(150) default NULL COMMENT '数量'
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
insert  into `sale`(`name`,`number`) values ('C++','18'),('Java','20'),('数据结构','30'),('安桌','40'),('IOS','25'),('计算机网络','28');
运行结果图:


上一篇文章      下一篇文章      查看所有文章
2015-01-17 11:02:13  
360图书馆 论文大全 母婴/育儿 软件开发资料 网页快照 文字转语音 购物精选 软件 美食菜谱 新闻中心 电影下载 小游戏 Chinese Culture
生肖星座解梦 三沣玩客 拍拍 视频 开发 Android开发 站长 古典小说 网文精选 搜图网 天下美图 中国文化英文 多播视频 装修知识库
2017-2-23 12:47:22
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  软件世界网 --