mysql查询显示柱形图_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 data = new ArrayList();

NewsDao dao = new NewsDao();

ArrayList 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);

}

}其它类就不上代码了,跟你平时连数据库一样。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值