本文来自http://blog.csdn.net/hellogv/
本文源代码下载地址:
http://download.csdn.net/source/872671 本文所用的Chart组件为J2me ChartComponent - ver 1.5.2,该组件的下载页面为
http://www.beanizer.org/site/index.php/en/Software/J2me-ChartComponent-ver-1.5.html。按照官网所说,ChartComponent的二进制开发包可以用于个人开发以及商业项目,而源代码则需要购买,为了支持作者开发,最好是购买一份啦。
ChartComponent,基于J2ME的LCDUI,而本文要演示的是,如何把ChartComponent运用到LWUIT之上,其他LCDUI的控件也可以参照这个方法,从而运作在LWUIT上。
在LWUIT上实现Chart功能,可以利用LWUIT固有的组件,混合使用,效果挺好的,例如加入chart的每个图块说明(说明与图块颜色对应)时,可以用FlowLayout排列方式+Label控件,能够自适应,比用UI直接画省好多功夫。
- 首先,先在主文件UIDemoMIDlet加入以下代码:
-
-
-
staticImagelcdui2lwuit(javax.microedition.lcdui.Imagelcdui_img)
- {
-
-
int[]bufferArray=newint[lcdui_img.getWidth()*lcdui_img.getHeight()];
-
-
lcdui_img.getRGB(bufferArray,0,lcdui_img.getWidth(),0,0,lcdui_img.getWidth(),lcdui_img.getHeight());
-
-
for(inti=0;i<bufferArray.length;i++){
-
if((bufferArray[i]&0x00FFFFFF)==0x00FFFFFF)
-
bufferArray[i]=bufferArray[i]&0x00FFFFFF;
- }
-
-
- Imageresult=Image.createImage(bufferArray,lcdui_img.getWidth(),lcdui_img.getHeight());
-
returnresult;
- }
-
-
-
staticintRGBtoInt(intr,intg,intb)
- {
- Stringresult=Integer.toHexString(r)+Integer.toHexString(g)+Integer.toHexString(b);
-
returnInteger.parseInt(result,16);
- }
- 其次,编写PieChartDemo的代码,代码有详细的注释,非常好理解:
-
-
packagecom.sun.lwuit.uidemo;
-
importcom.sun.lwuit.Button;
-
importcom.sun.lwuit.Command;
-
importcom.sun.lwuit.Font;
-
importcom.sun.lwuit.Form;
-
importcom.sun.lwuit.Image;
-
importcom.sun.lwuit.Label;
-
importcom.sun.lwuit.events.ActionEvent;
-
importcom.sun.lwuit.events.ActionListener;
-
importcom.sun.lwuit.layouts.FlowLayout;
-
importorg.beanizer.j2me.charts.ChartItem;
-
importorg.beanizer.j2me.charts.PieChart;
-
publicclassPieChartDemoimplementsActionListener{
-
publicFormform=newForm("VBarChartDemo");
-
privateCommandbackCommand=newCommand("Back",1);
-
finalPieChartpieChart=newPieChart("");
- PieChartDemo()
- {
-
-
Stringchart_str[]={"█A:你好吗","█B:早上好","█C:中午好","█D:晚上好","█E:吃宵夜","█F:睡懒觉"};
-
-
int[][]color={{0,0,200},{0,200,0},{50,15,30},{100,0,200},{0,200,100},{200,100,200}};
-
-
int[]percent={15,10,5,20,34,16};
-
- initChartInfo(chart_str,color);
-
intwidth=form.getWidth();
-
intheight=form.getHeight()-60;
-
Imageimg_hbarChart=drawPieChart(pieChart,width,height,"",color,percent);
-
Buttonbutton=newButton(img_hbarChart);
-
button.getStyle().setBgTransparency(1);
-
button.setBorderPainted(false);
- form.addComponent(button);
- form.addCommand(backCommand);
-
form.setCommandListener(this);
-
form.setLayout(newFlowLayout());
- }
-
privatevoidinitChartInfo(String[]chart_str,int[][]color)
- {
-
for(inti=0;i<chart_str.length;i++)
- {
-
Labelchart_info=newLabel(chart_str[i]);
-
chart_info.getStyle().setFgColor(UIDemoMIDlet.RGBtoInt(color[i][0],color[i][1],color[i][2]));
- form.addComponent(chart_info);
- }
- }
-
privateImagedrawPieChart(ChartItemitem,
-
intwidth,
-
intheight,
- Stringimagefile,
-
int[][]color,
-
int[]percent)
- {
- item.setFont(Font.FACE_PROPORTIONAL,Font.STYLE_PLAIN,Font.SIZE_SMALL);
-
item.setDrawAxis(true);
-
item.setPreferredSize(width-80,width-80);
-
if(imagefile.length()>0)
- {
-
try{
-
javax.microedition.lcdui.Imageimg=javax.microedition.lcdui.Image.createImage(imagefile);
-
item.setBackgroundImage(img);
-
}catch(Exceptionex){ex.printStackTrace();}
- }
-
item.showShadow(true);
-
item.setShadowColor(20,20,20);
-
item.setColor(40,40,200);
- item.resetData();
-
for(inti=0;i<color.length;i++)
- {
-
item.addElement(String.valueOf((char)('a'+i)),percent[i],color[i][0],color[i][1],color[i][2]);
- }
-
item.setMaxValue(100);
-
- javax.microedition.lcdui.Imagelcdui_img=
-
javax.microedition.lcdui.Image.createImage(width,height);
-
- javax.microedition.lcdui.Graphicslcdui_g=lcdui_img.getGraphics();
- pieChart.drawPie(lcdui_g,
-
40,
-
40,
-
width-100,
-
width-100);
-
returnUIDemoMIDlet.lcdui2lwuit(lcdui_img);
- }
-
publicvoidactionPerformed(ActionEventarg0){
-
if(arg0.getCommand()==backCommand)
- {
- UIDemoMIDlet.backToMainMenu();
- }
- }
- }
分享到:
相关推荐
- **创建ChartComponent**:使用LWUIT的`Chart`类实例化一个图表对象,指定图表类型(饼图、柱状图或折线图)。 - **填充数据**:根据需求设置数据点,如设置每个饼图段的值,或者为柱状图和折线图设定X轴和Y轴的...
通过运行此示例,开发者可以直观地了解LWUIT如何实现各种UI元素和交互效果,从而学习和掌握LWUIT的使用方法。 "sun java(TM) wireless Toolkit 2.5.2_01 for CLDC"是开发J2ME应用的官方工具,包含了编译器、模拟器...
LWUIT( Lightweight UI Toolkit )是Java ME(J2ME)平台上的一种用户界面库,专为移动设备设计,提供了一种轻量级、高性能的界面构建工具。它旨在简化和美化在移动设备上的应用程序开发,使开发者能够创建具有丰富...
标题“J2ME LWUIT 之九宫图”指的是使用LWUIT库在J2ME平台上实现一个类似于iPhone上的九宫格布局的界面。九宫图通常是一种常见的布局方式,用于展示多个相互关联的小模块或应用图标,用户可以通过点击这些图标来启动...
本文将深入探讨如何利用LWUIT来实现一个引人注目的九宫图特效,帮助开发者创建出更具吸引力的移动应用界面。 首先,我们需要了解LWUIT的基本概念。LWUIT是Sun Microsystems(现已被Oracle收购)推出的一个轻量级...
**LWUIT(Lightweight User Interface Toolkit)**是Java ME平台上的一个开源用户界面库,主要用于创建具有丰富图形效果和交互性的移动应用。这个库在早期的Java ME开发中非常流行,因为它允许开发者构建出与桌面...
LWUIT( Lightweight UI Toolkit )是Java ME(Micro Edition)平台上的一款用户界面库,用于构建具有丰富图形和交互性的移动应用。这个"lwuit_demo_src.rar_DEMO_J2ME lwuit de_LWUIT_lwuit demo"压缩包包含的是...
LWUIT( Lightweight UI Toolkit)是Java ME平台上的一款开源用户界面框架,专为移动设备设计,用于构建具有丰富图形和互动性的应用程序。这个框架提供了一系列的组件和工具,使得开发者可以轻松创建出美观且功能...
LWUIT.jarLWUIT.jarLWUIT.jarLWUIT.jarLWUIT.jarLWUIT.jar
在“LWUIT的一个例子”中,我们将探讨如何利用LWUIT来实现一个模仿销售系统的应用。** 首先,LWUIT提供了一系列组件,如按钮、文本框、列表视图等,这些组件可以帮助开发者快速构建UI。在这个销售系统示例中,可能...
5. **编写业务逻辑**:结合LWUIT的事件处理机制,实现用户交互逻辑和应用功能。 6. **测试与调试**:在模拟器或实际设备上运行并测试应用,调试可能出现的问题。 7. **打包发布**:最后,将应用打包成JAR或KJava...
而J4LChart 是一个专门用于LWUIT 的库,它扩展了LWUIT 的功能,使其能够创建各种类型的图表,如柱状图、饼图、线形图等,这对于数据可视化和信息展示非常有用。 LWUIT 是Sun Microsystems(现已被Oracle收购)开发...
LWUIT( Lightweight UI Toolkit)是Sun Microsystems(现已被Oracle收购)为J2ME(Java 2 Micro Edition)平台设计的一款轻量级用户界面库,旨在提供一套高效、美观且功能丰富的图形用户界面组件。这个库在J2ME应用...
标题中的"lwuit.rar_J2ME lwuit_LWUIT_j2me_j2me LWU_九宫"表明这是一个与LWUIT相关的压缩包,内容可能包含了实现J2ME平台上九宫图功能的代码或资源。 九宫图是一种常见的界面布局方式,通常用于显示多个小视图,如...
LWUIT的事件处理机制也是其特色之一。与标准Java ME中的事件模型不同,LWUIT采用了一种更简洁的事件监听方式,使得代码更加简洁易读。开发者可以为组件添加监听器,监听用户的触摸、按键等操作,轻松实现交互功能。 ...
1. **List组件**:List是LWUIT中的核心组件之一,它允许用户通过列表形式查看和选择数据。开发者可以自定义列表项的外观和行为,包括文字、图片、颜色、字体等。在这个示例中,你将看到如何创建和填充List,以及如何...
LWUIT的核心优势在于其可定制性,开发者可以通过自定义主题来改变应用的整体外观和感觉,实现与设备原生界面风格的统一。LWUIT支持多种设备和操作系统,包括J2ME、Symbian、Blackberry等,这使得开发者可以编写一次...
The Lightweight UI Toolkit (LWUIT) 是一个轻量级JavaME UI工具包。LWUIT类似Swing 的MVC架构, 支持多种布局(Layouts), 皮肤更换, 字体, 触摸屏, 动画效果, Rich控件, 3D集成, Painter, 模式对画框, I18N/L10N等...
LWUIT(Light Weight User Interface Toolkit)是一个专为Java ME平台设计的轻量级用户界面工具包。它为开发者提供了丰富的功能,包括类似Swing的MVC(Model-View-Controller)架构、多种布局管理方式、可更换的皮肤...