首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

【java】兑现柱状图 饼状图

2012-09-13 
【java】实现柱状图 饼状图一、前提:下载增加jar包 :jfreechart-1.0.13.jar ,jcommon-1.0.14.jar二、柱状图:2.

【java】实现柱状图 饼状图

一、前提:下载增加jar包 :jfreechart-1.0.13.jar ,jcommon-1.0.14.jar

二、柱状图:

2.1 效果

【java】兑现柱状图 饼状图

2.2 代码


3.2 代码

import java.awt.BorderLayout;import java.awt.Font;import java.util.ArrayList;import java.util.List;import javax.swing.JOptionPane;import javax.swing.JPanel;import org.jfree.chart.ChartFactory;import org.jfree.chart.ChartPanel;import org.jfree.chart.JFreeChart;import org.jfree.chart.plot.PiePlot;import org.jfree.chart.title.TextTitle;import org.jfree.data.general.DefaultPieDataset;import org.jfree.data.general.PieDataset;public class PieChartJPanel {private String title;private List<String> elem = new ArrayList<String>();// 内容初始值 (每个类型显示文字)private List<Float> value = new ArrayList<Float>();// 内容初始值(每个类型显示精度)public PieChartJPanel(){}public PieChartJPanel(String  title,List<String> elem,List<Float> value){  this.title=title;  this.elem=elem;  this.value=value;}private class PieChart extends JPanel{/** *  */private static final long serialVersionUID = 1L;private  PieDataset createDataset()throws Exception{if (elem.size() == 0) {JOptionPane.showMessageDialog(null, "柱状图显示数据不符合要求请重新设置", "",JOptionPane.INFORMATION_MESSAGE);throw new Exception("柱状图显示数据不符合要求请重新设置(PanelByHistogram 类 61行)");}if (elem.size() != value.size()) {JOptionPane.showMessageDialog(null, "柱状图显示数据不符合要求请重新设置", "",JOptionPane.INFORMATION_MESSAGE);throw new Exception("柱状图显示数据不符合要求请重新设置(PanelByHistogram 类 67行)");}DefaultPieDataset defaultpiedataset = new DefaultPieDataset();for (int i = 0; i < elem.size(); i++) {defaultpiedataset.setValue(elem.get(i), value.get(i));}return defaultpiedataset;}private  JFreeChart createChart(PieDataset piedataset){JFreeChart jfreechart = ChartFactory.createPieChart(title, piedataset, true, true, false);TextTitle t = jfreechart.getTitle();t.setFont(new Font("宋体", Font.BOLD, 30));// 标题文字//TextTitle texttitle = jfreechart.getTitle();//texttitle.setToolTipText("A title tooltip!");PiePlot pieplot = (PiePlot)jfreechart.getPlot();pieplot.setLabelFont(new Font("宋体", 0, 12));pieplot.setNoDataMessage("No data available");pieplot.setCircular(false);pieplot.setLabelGap(0.02D);jfreechart.getLegend().setItemFont(new Font("宋体", 0,10));return jfreechart;}private PieChart()throws Exception{super(new BorderLayout());JFreeChart jfreechart=createChart(createDataset());ChartPanel chartpanel = new ChartPanel(jfreechart);//chartpanel.setPreferredSize(new Dimension(600, 400));add(chartpanel);}}public  JPanel createPieChartPanel() throws Exception{return new PieChart();}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public List<String> getElem() {return elem;}public void setElem(List<String> elem) {this.elem = elem;}public List<Float> getValue() {return value;}public void setValue(List<Float> value) {this.value = value;}}

3.3 调用方式

PieChartJPanel PieChart = new PieChartJPanel();// 饼状图panel
            PieChart.setTitle("饼状图");
            PieChart.setElem(elem);
            PieChart.setValue(value);
            view.jScrollPane.setViewportView(PieChart.createPieChartPanel());
            view.jScrollPane.updateUI();



热点排行