本文来自http://blog.youkuaiyun.com/hellogv/

本文例子代码,可以到这里下载:http://download.youkuaiyun.com/source/886261
Lwuit就不必介绍了,至于J4LChart,就不得不介绍一下了。。。。。。J4LChart,提供了完整的Chart图表,从饼、线、柱等都一网打尽,并且其使用也比较简单,Chart的式样可以从TXT文本中读取,当然,也可以在代码里修改啦,不过,用TXT文件读取,可以做成模板那样,想换就换。。。。。。
下面就贴出J4LChart的使用代码,也好简单的:

本文例子代码,可以到这里下载:http://download.youkuaiyun.com/source/886261
Lwuit就不必介绍了,至于J4LChart,就不得不介绍一下了。。。。。。J4LChart,提供了完整的Chart图表,从饼、线、柱等都一网打尽,并且其使用也比较简单,Chart的式样可以从TXT文本中读取,当然,也可以在代码里修改啦,不过,用TXT文件读取,可以做成模板那样,想换就换。。。。。。
下面就贴出J4LChart的使用代码,也好简单的:
- package com.sun.lwuit.uidemo;
- import com.sun.lwuit.Command;
- import com.sun.lwuit.Form;
- import com.sun.lwuit.events.ActionEvent;
- import com.sun.lwuit.events.ActionListener;
- import com.java4less.rchart.Chart;
- import com.java4less.rchart.ChartLoader;
- import com.java4less.rchart.gc.GraphicsProvider;
- import com.java4less.rchart.lwuit.ChartViewer;
- import com.java4less.rchart.util.Formats;
- import com.sun.lwuit.Display;
- import com.sun.lwuit.animations.Transition3D;
- import com.sun.lwuit.geom.Dimension;
- import com.sun.lwuit.layouts.BorderLayout;
- import java.util.Date;
- public class ChartDemo implements ActionListener {
- public Form form = new Form("J4LChart");
- Display display;
- Command nextExample= new Command("Next");
- Command previousExample= new Command("Previous");
- ChartViewer chartCanvas;
- ChartLoader loader;
- String[] examples={"areaChart.txt","areaCurves.txt","axisOnTop.txt","barChart3D.txt","barChart3D.txt","barChart.txt",
- "barImages.txt","bubbleChart.txt","candleStick.txt","combined2Positions.txt","combinedChart.txt","event.txt","linechart3D.txt",
- "linechart.txt","linechartClipping.txt","linechartNULLS.txt","MultiAxis.txt","MultiCharts.txt","patternFilling.txt",
- "piechart3D.txt","PieDrillDown.txt","radarChart.txt","realtime.txt","scatterChart.txt","stackedBar.txt","StackedMultiAxis.txt",
- "subpie1.txt","subpie2.txt","subpie3.txt","targetZones.txt"};
- int currentExample=0;
- /*
- * 初始化Chart,从文本读取chart图结构并显示
- */
- ChartDemo()
- {
- GraphicsProvider.setMode(GraphicsProvider.MODE_LWUIT);
- form.addCommand(previousExample);//上一个
- form.addCommand(nextExample);//下一个
- form.setCommandListener(this);
- chartCanvas=new ChartViewer();//chart视图
- chartCanvas.setPreferredSize(new Dimension(200,200));//设置大小
- loadChartFromFile("/txt/"+examples[currentExample]);//读取文本,设置chart
- form.setLayout(new BorderLayout());
- form.addComponent(BorderLayout.CENTER,chartCanvas);
- form.refreshTheme();
- }
- /*
- * 在读取TXT文件的同时,同时设置Chart里面的数值
- */
- private void createRealtimedata(ChartLoader loader) {
- java.util.Date now=java.util.Calendar.getInstance().getTime();
- loader.setParameter("XAXIS_INITIAL_DATE",Formats.formatDate(now,"dd/MM/yyyy hh:mm:ss"));
- // create random data based on the time
- java.util.Calendar cal=java.util.Calendar.getInstance();
- String data1="";
- String data2="";
- for (int i=0;i<9;i++) {
- cal.setTime(new Date(cal.getTime().getTime()-2000));
- if (data1.length()>0) data1="|" + data1;
- data1=""+cal.get(java.util.Calendar.SECOND)+ data1;
- if (data2.length()>0) data2="|" + data2;
- data2=""+(cal.get(java.util.Calendar.SECOND)/6)+ data2;
- }
- loader.setParameter("SERIE_DATA_1",data1);
- loader.setParameter("SERIE_DATA_2",data2);
- }
- /*
- * 读取TXT文件并设置chart
- */
- public void loadChartFromFile(String filename) {
- ChartLoader cha=new ChartLoader();
- cha.loadFromFile(this.getClass().getResourceAsStream(filename),true);//读取文本
- //this.loader=cha;
- //********设置Chart数值
- //createRealtimedata(cha);
- //********设置Chart数值
- Chart c=cha.build(false,false);//建立chart
- chartCanvas.setChart(c);
- chartCanvas.getChart().setSize(chartCanvas.getWidth(),chartCanvas.getHeight());
- chartCanvas.repaintChart();
- form.setTitle(filename);
- }
- public void actionPerformed(ActionEvent arg0) {
- if(arg0.getCommand()==nextExample)//读取上一个chart(TXT文本)
- {
- chartCanvas.getChart().stopUpdater();
- currentExample++;
- if(currentExample>=examples.length-1)
- currentExample=0;
- form.replace(chartCanvas, chartCanvas,Transition3D.createRotation(500, true));
- loadChartFromFile("/txt/"+examples[currentExample]);
- }
- else if(arg0.getCommand()==previousExample)//读取下一个chart(TXT文本)
- {
- chartCanvas.getChart().stopUpdater();
- currentExample--;
- if(currentExample<=0)
- currentExample=examples.length-1;
- form.replace(chartCanvas, chartCanvas,Transition3D.createRotation(500, false));
- loadChartFromFile("/txt/"+examples[currentExample]);
- }
- }
- }