如何用jfreechart显示饼状图,数据来自我的数据库当中。求具体代码

sql=selectdistinctpassengeridCard_frfrompassenger,pnrtablewherepassenger.idCard=pnrta... sql=select distinct passenger idCard_fr from passenger,pnrtable where passenger.idCard=pnrtable.idCard and srcAirport='PEK'and dstAirport='PEK';

idCard_fr是年龄。
能不能直接通过sql语句查找出来的数据直接用jfreechat饼状图显示。求具体的代码?如果不行的话,我把数据具体的存入一个文件中也行。
展开
 我来答
beautytrap
推荐于2016-10-07 · 超过22用户采纳过TA的回答
知道答主
回答量:36
采纳率:0%
帮助的人:44.7万
展开全部
    /*
     * 生成3D饼状图
     */
    public static JFreeChart buildeChartAsPieChart3D(String title,
            List<TimeSeriesDataBean> list) {
        FontCtl.setFont();// 解决乱码问题
        List<String[]> dataList = new ArrayList<String[]>();
        String[] ss;
        for (TimeSeriesDataBean bean : list) {
            ss = new String[2];
            ss[0] = bean.getNam();
            ss[1] = bean.getVal() + "";
            dataList.add(ss);
        }
        DefaultPieDataset dataset = DataSetBuilder.buildPieChartDataSet(title,
                dataList);
        JFreeChart chart = ChartFactory.createPieChart3D(title, dataset, true,
                true, false);
        // chart.addSubtitle(new TextTitle("SUBTITLE测试"));
        PiePlot pieplot = (PiePlot) chart.getPlot();
        // {0}:({1})% 代表显示格式 : 0 = 名称 1 = 值 比如 : 名称:19%
        StandardPieSectionLabelGenerator standarPieIG = new StandardPieSectionLabelGenerator(
                "{0}:({1})", NumberFormat.getNumberInstance(), NumberFormat
                        .getPercentInstance());
        pieplot.setLabelGenerator(standarPieIG);
        // 没有数据的时候显示的内容
        pieplot.setNoDataMessage("无数据显示");
        pieplot.setLabelGap(0.02D);
        PiePlot3D pieplot3d = (PiePlot3D) chart.getPlot();
        // 设置开始角度
        pieplot3d.setStartAngle(120D);
        // 设置方向为”顺时针方向“
        pieplot3d.setDirection(Rotation.CLOCKWISE);
        // 设置透明度,0.5F为半透明,1为不透明,0为全透明
        pieplot3d.setForegroundAlpha(0.7F);
        ChartFrame frame = new ChartFrame(title, chart);
        frame.pack();
        frame.setVisible(true);
        return chart;
    }
更多追问追答
追问
我就是不知道怎么定义我的数据集,我是不是可以直接写sql语句?
追答
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("显示名称", "值(DOUBLE类型)");

这样明白么?这个是JFREECHART的自带方法。

上面我的代码中

DefaultPieDataset dataset = DataSetBuilder.buildPieChartDataSet(title,                dataList);

这一段是我把这个方法封装了一下而已。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式