当前位置: 首页 > news >正文

LWUIT + ChartComponent 之三实现柱体图(HBarChar)

本文来自http://blog.csdn.net/hellogv/

本文源代码下载地址:http://download.csdn.net/source/872671
本文就不再说多余的开场白了,想看开场白?看这里:http://blog.csdn.net/hellogv/archive/2008/12/15/3521119.aspx
直接贴出实现柱体图的代码:
  1. /*
  2. *LWUIT+ChartComponent,实现多种图表
  3. *作者:张国威(咪当俺系噜噜)
  4. *本例实现的是“横柱体”
  5. */
  6. packagecom.sun.lwuit.uidemo;
  7. importcom.sun.lwuit.Button;
  8. importcom.sun.lwuit.Command;
  9. importcom.sun.lwuit.Font;
  10. importcom.sun.lwuit.Form;
  11. importcom.sun.lwuit.Image;
  12. importcom.sun.lwuit.Label;
  13. importcom.sun.lwuit.events.ActionEvent;
  14. importcom.sun.lwuit.events.ActionListener;
  15. importcom.sun.lwuit.layouts.FlowLayout;
  16. importorg.beanizer.j2me.charts.ChartItem;
  17. importorg.beanizer.j2me.charts.HBarChart;
  18. publicclassHBarChartDemoimplementsActionListener{
  19. publicFormform=newForm("HBarChartDemo");
  20. privateCommandbackCommand=newCommand("Back",1);
  21. finalHBarCharthbarChart=newHBarChart("");//定义HBarChart
  22. HBarChartDemo()
  23. {
  24. //柱体说明
  25. Stringchart_str[]={"█A:你好吗","█B:早上好","█C:中午好","█D:晚上好","█E:吃宵夜","█F:睡懒觉"};
  26. //柱体颜色
  27. int[][]color={{0,0,200},{0,200,0},{200,0,0},{200,0,200},{0,200,200},{200,100,200}};
  28. //柱体长度
  29. int[]percent={15,10,5,20,34,16};
  30. //绘制柱体的说明
  31. initChartInfo(chart_str,color);
  32. intwidth=form.getWidth();
  33. intheight=form.getHeight()-140;
  34. Imageimg_hbarChart=drawHBarChart(hbarChart,width,height,"",color,percent);//绘制柱体图
  35. Buttonbutton=newButton(img_hbarChart);
  36. //button.getStyle().setBgTransparency(1);//透明背景,会非常消耗资源,速度减慢,注意使用
  37. button.setBorderPainted(false);
  38. form.addComponent(button);
  39. form.addCommand(backCommand);
  40. form.setCommandListener(this);
  41. form.setLayout(newFlowLayout());//必须使用这种排列,FlowLayout最适合
  42. }
  43. privatevoidinitChartInfo(String[]chart_str,int[][]color)
  44. {
  45. for(inti=0;i<chart_str.length;i++)//循环
  46. {
  47. Labelchart_info=newLabel(chart_str[i]);
  48. chart_info.getStyle().setFgColor(UIDemoMIDlet.RGBtoInt(color[i][0],color[i][1],color[i][2]));
  49. form.addComponent(chart_info);
  50. }
  51. }
  52. privateImagedrawHBarChart(ChartItemitem,
  53. intwidth,
  54. intheight,
  55. Stringimagefile,
  56. int[][]color,//柱体颜色
  57. int[]percent)//柱体长度(百分比)
  58. {
  59. item.setFont(Font.FACE_PROPORTIONAL,Font.STYLE_PLAIN,Font.SIZE_SMALL);
  60. item.setDrawAxis(true);
  61. item.setPreferredSize(width,height);//设置chart控件的大小
  62. if(imagefile.length()>0)//需要使用背景时
  63. {
  64. try{
  65. javax.microedition.lcdui.Imageimg=javax.microedition.lcdui.Image.createImage(imagefile);//读取背景图
  66. item.setBackgroundImage(img);//设置背景图
  67. }catch(Exceptionex){ex.printStackTrace();}
  68. }
  69. item.showShadow(true);//使用阴影特效
  70. item.setShadowColor(20,20,20);//设置阴影颜色
  71. item.setColor(40,40,200);
  72. item.resetData();
  73. for(inti=0;i<color.length;i++)//循环绘画柱体
  74. {
  75. item.addElement(String.valueOf((char)('a'+i)),percent[i],color[i][0],color[i][1],color[i][2]);
  76. }
  77. item.setMaxValue(100);//柱体代表数值的显示范围,100%
  78. //这个是lcdui的Image
  79. javax.microedition.lcdui.Imagelcdui_img=
  80. javax.microedition.lcdui.Image.createImage(width,height);//柱体大小,图像>控件
  81. //这个是lcdui的Graphics
  82. javax.microedition.lcdui.Graphicslcdui_g=lcdui_img.getGraphics();
  83. hbarChart.drawChart(lcdui_g,width-40,height-20);//这里设置的大小必须比width,height小,才能完全显示
  84. returnUIDemoMIDlet.lcdui2lwuit(lcdui_img);
  85. }
  86. publicvoidactionPerformed(ActionEventarg0){
  87. if(arg0.getCommand()==backCommand)
  88. {
  89. UIDemoMIDlet.backToMainMenu();
  90. }
  91. }
  92. }

相关文章:

  • 辽宁省交通高等专科学校云计算机,辽宁省交通高等专科学校教务管理系统入口http://202.199.184.12/jwc/...
  • 诫子书
  • 怎么用计算机删除历史记录,win7计算机里搜索历史记录怎么删除
  • 谷歌跌出08年美国最值得信赖20大公司排行榜
  • 计算机课翻译成英语怎么说,计算机专业课程名英文翻译.doc
  • html文件怎么迭代,迭代多个文件并使用Beautiful Soup从HTML附加文本
  • Google Pack软件包中火狐浏览器被Chrome取代
  • 从指定网址读取html文件,获取指定网址下的html页面中的图片文件
  • 买战斗机,去淘宝!
  • 熊猫如何设置html5,熊猫:如何将多个数据帧作为HTML表格引用和打印
  • 字符编码简介:ASCII,Unicode,UTF-8,GB2312
  • 计算机和用户交互的界面是显示器吗,CPU如何与显示器交互?
  • 计算机学院心理节活动主题,【阳光心理 放飞梦想】​计算机与信息工程系举办心理健康月系列活动...
  • (转)创业家杂志:UCWEB天使第一步
  • 计算机文件管理的优点,ntfs文件系统有什么特点 ntfs文件系统的优点【图文】
  • “Material Design”设计规范在 ComponentOne For WinForm 的全新尝试!
  • 【mysql】环境安装、服务启动、密码设置
  • 【技术性】Search知识
  • 10个确保微服务与容器安全的最佳实践
  • ES6系列(二)变量的解构赋值
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • k8s如何管理Pod
  • MySQL QA
  • Odoo domain写法及运用
  • Redux系列x:源码分析
  • 初识 webpack
  • 订阅Forge Viewer所有的事件
  • 区块链共识机制优缺点对比都是什么
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • 消息队列系列二(IOT中消息队列的应用)
  • 一、python与pycharm的安装
  • scrapy中间件源码分析及常用中间件大全
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • #Lua:Lua调用C++生成的DLL库
  • (k8s中)docker netty OOM问题记录
  • (Redis使用系列) Springboot 使用Redis+Session实现Session共享 ,简单的单点登录 五
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (转)Android学习笔记 --- android任务栈和启动模式
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • .NET Core 2.1路线图
  • .NET Framework .NET Core与 .NET 的区别
  • .net 逐行读取大文本文件_如何使用 Java 灵活读取 Excel 内容 ?
  • ::前边啥也没有
  • @angular/cli项目构建--Dynamic.Form
  • @WebServiceClient注解,wsdlLocation 可配置
  • [ linux ] linux 命令英文全称及解释
  • []AT 指令 收发短信和GPRS上网 SIM508/548
  • [20161214]如何确定dbid.txt
  • [bzoj2957]楼房重建
  • [c++] 单例模式 + cyberrt TimingWheel 单例分析
  • [C++]C++类基本语法
  • [CC-FNCS]Chef and Churu
  • [DNS网络] 网页无法打开、显示不全、加载卡顿缓慢 | 解决方案
  • [Editor]Unity Editor类常用方法
  • [Java]深入剖析常见排序