欢迎光临
我们一直在努力

在Java中使用Oracle Chart Builder输出图表-JSP教程,资料/其它

建站超值云服务器,限时71元/月

可随意转载,但请注明出处及作者
sonymusic
2003.05.15
==========================================================================
在java中使用oracle chart builder输出图表

package test.chart;

import java.awt.color;
import java.awt.font;
import java.awt.frame;
import java.awt.graphics2d;
import java.awt.event.windowadapter;
import java.awt.event.windowevent;
import java.awt.image.bufferedimage;

import oracle.charts.axischart.axischart;
import oracle.charts.types.annotationdesc;
import oracle.charts.types.chartexception;
import oracle.charts.types.linedesc;
import oracle.charts.types.bardesc;
import oracle.charts.types.markerdesc;
import oracle.charts.types.numaxisdesc;

/**
* @author sonymusic
*
* 简单的测试了oracle chart的用法.
* 下载地址:http://otn.oracle.com/software/tech/java/servlets/content.html
*/
public class testchart1 {

    //月份,其实就是x轴的标尺内容
    public final static string annualdates[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12" };

    //这是实际数据
    public final static double p2002[] = { 1768, 1891, 1707, 1630, 1678, 1761 };
    public final static double p2001[] = { 1697, 1787, 1684, 1870, 1847, 1852, 1858, 1901, 2016, 2068, 1863, 1891 };

    public static void main(string[] args) {

        // 嵌入图表的窗口(frame)的高和宽
        int chartheight = 400;
        int chartwidth = 600;

        frame f = new frame();
        f.addwindowlistener(new windowadapter() {
            public void windowclosing(windowevent e) {
                e.getwindow().dispose();
            }
        });
        f.setsize(chartwidth + 10, chartheight + 40);
        f.settitle("oracle chart测试窗口");

        try {

            // 创建axischart对象
            axischart axisch = new axischart();

            //
            // 图表的高和宽
            axisch.setsize(chartwidth, chartheight);

            //
            // 将时间戳放入x轴
            axisch.setxseries(annualdates);

            //
            // 将价格数字插入到y轴,并有对应的名称
            string y2001 = "2001年";
            string y2002 = "2002年";
            axisch.setyseries(y2001, p2001);
            axisch.setyseries(y2002, p2002);

            //
            // 定义line类型的图表,并设置线条颜色宽度,标记的类型和颜色
            //还可以定义其它类型,如:bardesc
            linedesc ld2001 = new linedesc();
            ld2001.setlinecolor(color.red);
            ld2001.setmarkertype(markerdesc.marker_circle);
            ld2001.setlinewidth(1);
            ld2001.setmarkercolor(color.green);

            linedesc ld2002 = new linedesc();
            ld2002.setlinecolor(color.blue);
            ld2002.setmarkertype(markerdesc.marker_diamond);
            ld2002.setlinewidth(1);
            ld2002.setmarkercolor(color.black);

            //将两个线加到图表中去,并与名称对应上
            axisch.setseriesgraphic(y2001, ld2001);
            axisch.setseriesgraphic(y2002, ld2002);

            //设置图表的背景色
            annotationdesc ad = axisch.getannotationdesc();
            ad.setforeground(color.cyan);

            //设置图表y轴标尺的颜色、间隔,以及范围
            numaxisdesc nad = new numaxisdesc();
            nad.setcolor(color.black);
            nad.setlabelincrement(100);
            nad.setextent(1200, 2500);

            axisch.setchartattributes(nad);

            //
            // 设置标题, 子标题, 和脚注. 及其字体
            axisch.gettitle().settext("2002年与2001年同期现款价格比较");
            axisch.gettitle().setfont(new font("宋体", font.plain, 18));
            axisch.getsubtitle().settext("钢坯(单价:元/吨)");
            axisch.getfootnote().settext("数据来源:销售科             时间(月)");

            //
            // 将图表添加到窗口中
            f.add(axisch);

            //还可以输出到一个outputstream中–以下的out
            //以下用到了acme中的gif encode组件
            /*
            bufferedimage image = new bufferedimage(chartwidth, chartheight,
                                                    bufferedimage.type_int_rgb);
            graphics2d g = (graphics2d) image.getgraphics();
            axisch.drawbuffer(g);

            gifencoder ge = new gifencoder(image, out);
            ge.encode();
            */

        }
        catch (chartexception e) {
            system.out.println(e.getmessage());
        }

        f.show();

    }
}

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 在Java中使用Oracle Chart Builder输出图表-JSP教程,资料/其它
分享到: 更多 (0)