Java读取数据库数据生成柱状图

public class BarChart {
ChartPanel frame1;
public BarChart() {
CategoryDataset dataset = getDataSet();
JFreeChart chart = ChartFactory.createBarChart3D("水果", // 图表标题
"水果种类", // 文件夹轴的显示标签
"数量", // 数值轴的显示标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
true, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
// 从这里開始
CategoryPlot plot = chart.getCategoryPlot();// 获取图表区域对象
CategoryAxis domainAxis = plot.getDomainAxis(); // 水平底部列表
domainAxis.setLabelFont(new Font("黑体", Font.BOLD, 14)); // 水平底部标题
domainAxis.setTickLabelFont(new Font("宋体", Font.BOLD, 12)); // 垂直标题
ValueAxis rangeAxis = plot.getRangeAxis();// 获取柱状
rangeAxis.setLabelFont(new Font("黑体", Font.BOLD, 15));
chart.getLegend().setItemFont(new Font("黑体", Font.BOLD, 15));
chart.getTitle().setFont(new Font("宋体", Font.BOLD, 20));// 设置标题字体
// 到这里结束,尽管代码有点多,但仅仅为一个目的,解决汉字乱码问题
frame1 = new ChartPanel(chart, true); // 这里也能够用chartFrame,能够直接生成一个独立的Frame
}
private static CategoryDataset getDataSet() {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
List<News> data = new ArrayList<News>();
NewsDao dao = new NewsDao();
ArrayList<News> list = dao.queryAll();
double value =0;
String rowKeys=null;
String columnKeys=null;
for (News news : list) {
// data.add(new News(news.getNewsId(), news.getTypeId(), news
// .getTitle(), news.getPublishTime(), news.getBody(), news
// .getTag(), news.getAuthor(), news.getClicks(), news
// .getImgUrl()));
value = news.getNewsId();
rowKeys = news.getTitle();
columnKeys = news.getAuthor();
dataset.addValue(value, rowKeys, columnKeys);
System.out.println(value+" "+rowKeys+" "+columnKeys);
}
// if(value!=0&&rowKeys!=null&&columnKeys!=null){
// System.out.println(value+" "+rowKeys+" "+columnKeys);
// dataset.addValue(value, rowKeys, columnKeys);
// }
// dataset.addValue(100, "北京", "苹果");
// dataset.addValue(100, "上海", "苹果");
// dataset.addValue(100, "广州", "苹果");
// dataset.addValue(200, "北京", "梨子");
// dataset.addValue(200, "上海", "梨子");
// dataset.addValue(200, "广州", "梨子");
// dataset.addValue(300, "北京", "葡萄");
// dataset.addValue(300, "上海", "葡萄");
// dataset.addValue(300, "广州", "葡萄");
// dataset.addValue(400, "北京", "香蕉");
// dataset.addValue(400, "上海", "香蕉");
// dataset.addValue(400, "广州", "香蕉");
// dataset.addValue(500, "北京", "荔枝");
// dataset.addValue(500, "上海", "荔枝");
// dataset.addValue(500, "广州", "荔枝");
return dataset;
}
public ChartPanel getChartPanel() {
return frame1;
}
public static void main(String[] args) {
JFrame frame = new JFrame("Java数据统计图");
// frame.setLayout(new GridLayout(2,2,10,10));
frame.add(new BarChart().getChartPanel()); // 加入柱形图
// frame.add(new BarChart1().getChartPanel()); //加入柱形图的还有一种效果
// frame.add(new PieChart().getChartPanel()); //加入饼状图
// frame.add(new TimeSeriesChart().getChartPanel()); //加入折线图
frame.setBounds(50, 50, 800, 600);
frame.setVisible(true);
}
}
其它类就不上代码了,跟你平时连数据库一样。

Java读取数据库数据生成柱状图的更多相关文章
- java 读取数据库数据转化输出XML输出在jsp页面
因为老师实验报告要求,搭建服务端解析XML 下面代码实现转化XML格式也是在网上找的转化代码 输出在jsp页面以便于客户端解析是自己写的 一个类就解决了Test package tests; //三只 ...
- 读取数据库数据,并将数据整合成3D饼图在jsp中显示
首先我将生成饼图的方法独立写成一个PieChar.java类,详细代码如下:(数据库需要自己建,如有需要的话) import java.io.IOException; import java.sql. ...
- jxl读数据库数据生成xls 并下载
1.所需jar jxl-2.6.10.jar jxls-core-1.0-RC-3.jar jxls-reader-1.0-RC-3.jar 2. excel修改行宽度封装 SheetColumn.j ...
- Java读取Excel数据
Java读取Excel数据,解析文本并格式化输出 Java读取Excel数据,解析文本并格式化输出 Java读取Excel数据,解析文本并格式化输出 下图是excel文件的路径和文件名 下图是exce ...
- java 读取CSV数据并写入txt文本
java 读取CSV数据并写入txt文本 package com.vfsd; import java.io.BufferedWriter; import java.io.File; import ja ...
- C#使用SqlDataReader读取数据库数据时CommandBehavior.CloseConnection参数的作用
主要用在ExecuteReader(c)中,如果想要返回对象前不关闭数据库连接,须要用CommandBehavior.CloseConnection: CloseConnection解决了流读取数据模 ...
- Java将数据库数据导入EXCEL
一般的数据库数据怎么导入excel中呢??这让人非常疑惑,今天我找到了一个方法能够实现 须要导入一个第三方包下载地址 详细内容例如以下: 里面含有指导文档,index.html里面含有怎样读取数据库文 ...
- Spark使用Java读取mysql数据和保存数据到mysql
原文引自:http://blog.csdn.net/fengzhimohan/article/details/78471952 项目应用需要利用Spark读取mysql数据进行数据分析,然后将分析结果 ...
- 【助教】Java获取数据库数据展示
本文将给出一个最简单的Java查询数据库中一张表的数据并将查询结果展示在页面的例子. 实际上,我们要解决以下两个问题: Java与数据库交互(以JDBC为例) 数据展示在前台页面(以Servlet+J ...
随机推荐
- 微信小程序打卡第五天
2018-02-1823:55:53大年初三 微信小程序已经学了5个夜晚了,没有很努力,只是简单地接触,感觉从今天开始有了突破的进展,很爽! 无意间发现一个很好的教程,也是一个老哥分享的,很给力 ht ...
- 【C++】智能指针简述(三):scoped_ptr
在介绍scoped_ptr之前,我们先回顾一下前两篇文章的内容. 首先,智能指针采用RAII机制,通过对象来管理指针,构造对象时,完成资源的初始化;析构对象时,对资源进行清理及汕尾. auto_ptr ...
- 跨站脚本攻击XXS(Cross Site Scripting)修复方案
今天突然发现,网站被主页莫名奇妙的出现了陌生的广告. 通过排查发现是跨站脚本攻击XXS(Cross Site Scripting).以下为解决方案. 漏洞类型: Cross Site Scriptin ...
- [权威指南]学习笔记——第1、2章 MongoDB介绍和基础知识
安装目录:C:\Program Files\MongoDB\Server\3.2 Bin:..\..\Program Files\MongoDB\Server\3.2\bin 启动命令:mongod ...
- jstree -- 使用JSON 数据组装成树
概述: 前面主要是html数据,这里主要是json数组 1.格式 jsTree需要一个具体格式JSON数据,在标准的语法没有那个字段是必须的-而是那些是你需要的.请记住你可以获取任何你请求的其他属性, ...
- dwarfdump --arch=arm64 --lookup
解析友盟错误信息重要指令: dwarfdump --arch=arm64 --lookup 0x1001edbc4 /Users/zhoujunbo/Library/Developer/Xcode/A ...
- Windows提高_1.3文件操作
文件操作 不带句柄的文件操作 // 1. 拷贝文件,第三个参数为 FALSE 表示会覆盖 // CopyFile(L"D:\\1.txt", L"E:\\2.txt&qu ...
- Python的伪造数据库:Faker
faker 是一个可以让你生成伪造数据的Python包,在软件需求.开发.测试过程中常常需要利用一些假数据来做测试,这种时候就可以使用 Faker 来伪造数据从而用来测试. 一.Faker安装 pip ...
- C# 字符串每隔两个 提取
private void button3_Click(object sender, EventArgs e) { StringBuilder sb = new StringBuilder(); str ...
- 00Extensible Markup Language
Extensible Markup Language XML(Extensible Markup Language)可扩展标记语言是用来网络数据的组织结构,传输及存储.