超强

超强

精选 转载

zhy000 博主文章分类:java Me

文章标签 java 职场 休闲 文章分类 Java 后端开发

实现自己的J2ME 企业应用UI-欢迎拍砖
做j2me应用也快1年了, midp提供的那套高级ui实在让人很难受,早就想自己弄一套了, 查了一些开源项目,没有合我这个懒人口味的, 也间或看了一下包括wuhua和其他几个网友提供一些自行设计UI的文章, 总觉的有点复杂,不适合我这个懒人。

过完年闲着实在无事,慢慢磨蹭,自己搞了一套完事。

midp 2的高级ui我感觉主要有这些问题。
1. 界面丑陋, 不能进行各式字体和背景色的设置, 不利于创建统一的界面风格。
2. Command和choicegroup在不同平台上实现差异巨大, 每个平台都要调试,写不同的用户手册,很烦,而且command不支持二级菜单。
3. layout基本无用, 原因也是各个手机平台的差异,特别是wm上,不同虚拟机实现差异巨大。
我们做企业应用,是因为跨平台的需要而选择kjava的,但是因为上面的因素,往往导致做出来的东西,界面和wm 上有c#或c++做的东西差异巨大,引起客户的强烈不满。而且某些复杂的展现,需要用canvas实现,风格也很难和高级ui保持一致(很难为了每个平台都专门做一套风格),很难和客户解释。而企业用户,一般都不怎么懂技术,对手机UI的观感直接影响到他们对整个应用的评价。

我基本的思路是做一套ui替换掉midp 2.0中的高级ui ,基本的目标如下。
1. 部件名词和基本方法应该保持和原来ui的一致,方便代码移植,比如Textfield 还是叫Textfield,基本参数也一致。
2. 对部件进行适当扩展和简化,方便开发,比如command, 被我拆分成2个部分,一个是左右command,另外一个是完整的菜单(可支持多级菜单),事件处理尽可能的符合传统桌面系统编写的习惯,而不是原来midp中的简化模型
3. layout方面进行简化, 我觉得手机界面,最有效的布局方式就是上下顺序布局,一行一个对象, 一行需要放多个对象的时候,可以使用分组的概念来进行简化,并可以简单设置对象的对齐模式。 特殊情况下也可以重载基类的布局,使用绝对定位的方法绘制元素。原来midp中设计的layout概念,因为不同手机的巨大差异,实际基本没有用处。
4. 统一在基类form里完成各种事件处理和调度,保证同时对触摸屏和键盘的支持,并对普通开发用户屏蔽这些操作。
5. 增加一些常用,但是midp里面没有的控件,简化开发工作量,比如对话框,提示框,进度条,电子表格,文档浏览等等。
这样完成以后的UI对开发者的开发难度要低于直接使用用高级ui进行开发,代码量也有显著减少,而且大幅度节约了调试和移植的时间。 缺点当然是内存消耗增加,不过对于企业应用一般都可以使用中高档手机,所以问题也不大。
另外为了方便对不同用户定制风格,进行了修改,实现了skin的方式,可以使用图片来设计主题。
 
 UI的风格是以模仿win ce为核心的, 分为标题, 工作区域, 菜单条区域三个部分。父类form负责处理各种事件,子类需要的时候可以重载工作区域,实现自己的特定风格显示。 

结合代码和截图简单做一下介绍

首先,实现一个基本的登陆窗体
超强_java


超强_休闲_02        setBackGroundImage(ImageBuilder.LOGO_IMG);
超强_休闲_02        setStartXPosition(getHeight() 
/ 3 + getFontHeight()); //form元素开始绘制的y坐标
超强_休闲_02
        setShowHeader(false); //不显示标题
超强_休闲_02
        append(userField);
超强_休闲_02        append(pwdField);
超强_休闲_02        append(storePasswd);
超强_休闲_02
超强_休闲_09        append(
new TextLabel("设置服务器", TextLabel.LAYOUT_R) {
超强_休闲_10            
public void doAction() {
超强_职场_11    超强_休闲_12        
超强_职场_13         }

超强_休闲_14        }
);
超强_休闲_02
//左边显示退出按钮
超强_职场_16
        addLeftCommand("退出"new Action() {
超强_职场_17            
public void action(Item event) {
超强_职场_13                        }

超强_休闲_14        }
);
超强_休闲_02
代码和原MIDP 2.0的代码基本一致,但是对事件模型进行了简化,使用action的模式做处理,节约了一部分代码量。和网络上某些框架不同的地方,这里一般不需要自己使用绝对坐标的方式绘制元素。

form可以设置背景,颜色,字体和元素的基本对齐方式。 

超强_职场_21

另外对原来的textfield进行了一些改进, 可以允许设置行高和提示信息, 比如此处的内容字段,即设置为自动填满屏幕剩余空间,这样可以简化开发工作。
超强_休闲_02public  TextField subject = new TextField("主题:"null200,
超强_休闲_02            
1);
超强_休闲_02    
public static int MAX_CONTENT_SIZE = 5000;
超强_休闲_02    
public  TextField content = new TextField("内容:"null0,
超强_休闲_02            MAX_CONTENT_SIZE, 
1); //0表示字段扩展到当前的剩余屏幕
超强_休闲_02
    


对于常见9宫格菜单,则提供一个基类来扩展。

超强_休闲_28

常见列表对象的实现。

超强_休闲_29
  实现的UI放弃了list的实现, 其实list也是个form,顺序增加就可, 此处使用group的概念把一个分割线,一个checkbox和一个Stringitem合并在一起就实现了list.
超强_休闲_02                SelectItemGroup ig = new SelectItemGroup(new DocCheckBoxItem(
超强_休闲_02                        doc), 
new ContentItem(doc, i + 1), true);
超强_休闲_02                form.append(ig);
超强_休闲_02

其中的SelectItemGroup 由2个item对象组合而成。

item也可以加入图片和对齐属性,实现这样图为混合的列表。
超强_休闲_34


超强_java_35

以树对象实现的地址薄, 树对象也是一个group。

更复杂一点的布局,日程安排也可以用group的概念进行组合

超强_职场_36

使用新UI对原来的高级UI进行替换,主要修改部分是事件处理部分,节约了三分之一以上的代码,基本达到了目的。

另外自行实现了一些常用的复杂控件。

电子表格
超强_java_37
可以用来显示查询结果或者excel文件(需要在后台转换)。有别于网上可以找到的其他电子表格,比如sun netbean送的那个,这个电子表格控件可以实现跨行跨列的显示,并支持滚动显示。

富文本显示窗体

超强_休闲_38
可以显示文本,表格和图像, 用来展现word或者其他富文本格式

图片浏览控件,用来显示图片和转换为图片的各类文档
超强_java_39

文本浏览控件, 用来显示大数据量的文本信息,能自动换行和分页
超强_休闲_40

对话框, 可以有多种变形,使用回调的方式执行事件,简化开发。另外还实现了比如状态条之类的东东。
超强_职场_41


上次在j2medev贴了没人回应,也没人给意见, 真是失败, 不过更失败的,自己做的这套移动办公最后无疾而终,木有用户呀。

基于这套ui实现对先前开发的移动OA界面做了重新开发,并对office附件处理部分进行了优化。效果尚可,更多图片可以参看附件移动OA用户手册的截屏。目前在s60系统,moto,uiq和wm5上做过兼容性测试。



POSTED ON 2008-06-10 18:37 鬼狗 阅读(3012) 评论(31)  编辑  收藏 所属分类: J2ME
 
超强_java_42
Comments
# re: 实现自己的j2me 企业应用UI-欢迎拍砖[未登录]
强烈的顶!
POSTED @ 2008-06-10 20:49  回复  更多评论    
# re: 实现自己的j2me 企业应用UI-欢迎拍砖
不错,不错
POSTED @ 2008-06-10 21:14  回复  更多评论    
# re: 实现自己的j2me 企业应用UI-欢迎拍砖
不错。还提到了我。兄弟我们可以交换下各自的设计思想。
有兴趣联系下我ggge@hotmail.com
POSTED @ 2008-06-10 22:00  回复  更多评论    
# re: 实现自己的j2me 企业应用UI-欢迎拍砖
业应用UI-欢迎拍砖
POSTED @ 2008-06-11 01:02  回复  更多评论    
# re: 实现自己的j2me 企业应用UI-欢迎拍砖
哥们,不错不错。
我现在在开发新一版的手机地图,ui部分是目前没有弄好的事情。也参考了无花的开源代码,还有j4me等。
哥们能不能把代码给一份看看啊!
不胜感激阿!
qq:157032685
POSTED @ 2008-06-11 08:20  回复  更多评论    
# re: 实现自己的j2me 企业应用UI-欢迎拍砖[未登录]
智能手机太贵了(要是按照美元计算,那是很便宜的) 上网费太贵了(运营商啊,唉,没法说) 这些都很不利于 Java ME 在国内的推广 

你这项目可以考虑做个开源的,到国外主推,我想肯定比在国内有响应的多。国内的Java ME,我以前从事过相关的,基本上,都是做游戏的多,做应用的少,也可能和手机消费习惯有关,普通用户手机就是玩游戏,看美女图的,很少有人去办公。
POSTED @ 2008-06-11 08:28  回复  更多评论    
# re: 实现自己的j2me 企业应用UI-欢迎拍砖
@beansoft 
呵呵,其实现在企业应用是近期发展的热点,我也是因为这个才开始做手机应用的,我本来的专长就是企业应用。 现在业务系统的移动化是大趋势,移动化可以充分激活企业信息流程,那点手机费用对领导来说根本不算什么。只是个人没有能力拿到政府项目而已。 

嗯,暂时还没法开源,一是因为我现在没工作,指望看看能否靠这个混点饭吃,找到合作项目或者工作,二是几个搞移动OA的公司都盯的紧,一开放源代码,特别是office处理那部分的, 个别恶心公司的阴谋就得逞了。 

下半年找到工作解决了吃饭问题再考虑是否继续做下去了, 那时候会考虑开源的方式做。至于吃国外市场,也有所了解,但是没有相关资源,而且老外的3g推广比较普及,应用模式会有差别。
POSTED @ 2008-06-11 09:10  回复  更多评论    
# re: 实现自己的j2me 企业应用UI-欢迎拍砖
@张氏兄弟 
源代码就没法开源了,这是一个完整的应用项目。 基本实现思路已经写出来了,熟悉midp和swing的话,重现难度不大。你可以找找ibm的 midp的源代码看看。 
对于手机地图这种应用,我这套显然不合适。
POSTED @ 2008-06-11 09:38  回复  更多评论    
# re: 实现自己的j2me 企业应用UI-欢迎拍砖
我曾经也做个一套类似的东西,不知道你这个各平台兼容性怎么样?界面别用太多图和渐变影响效率和移植。
POSTED @ 2008-06-11 09:51  回复  更多评论    
# re: 实现自己的j2me 企业应用UI-欢迎拍砖[未登录]
出个混淆版本的 提供试用 2天过期 呵呵
POSTED @ 2008-06-11 10:33  回复  更多评论    
# re: 实现自己的j2me 企业应用UI-欢迎拍砖
挺好的
POSTED @ 2008-06-11 11:28  回复  更多评论    
# re: 实现自己的j2me 企业应用UI-欢迎拍砖
这方面的文章少哦.留个名..
POSTED @ 2008-06-15 20:39  回复  更多评论    
# re: 实现自己的j2me 企业应用UI-欢迎拍砖
顶一个吧~~最近初学J2ME,编些小东西。移动应用确实是趋势,很多东西还要学习。移动监测和控制个人认为也不错,不过还是企业应用比较不错~~hohoh
POSTED @ 2008-06-16 15:32  回复  更多评论    
# re: 实现自己的j2me 企业应用UI-欢迎拍砖
很有受益! 
另外感谢关于我们的培训计划的留言,很有价值。
POSTED @ 2008-06-24 12:01  回复  更多评论    
# re: 实现自己的j2me 企业应用UI-欢迎拍砖
你好,想问一下,你在WM上用哪个JVM? J9?可以做到全屏吗??
POSTED @ 2008-07-22 17:13  回复  更多评论    
# re: 实现自己的j2me 企业应用UI-欢迎拍砖
@mingkg21
用的jmm,j9联网有点问题
POSTED @ 2008-07-28 17:47  回复  更多评论    
# re: 实现自己的j2me 企业应用UI-欢迎拍砖[未登录]
如何联系您?探讨一下如何合作?可以回复邮件jjsun007@126.com
POSTED @ 2008-10-06 11:24  回复  更多评论    
# 希望合作,
我们最近在搞类似的东西,希望一起合作,模式可谈 
mengjian@si-tech.com.cn
POSTED @ 2008-11-10 23:38  回复  更多评论    
# re: 实现自己的j2me 企业应用UI-欢迎拍砖
ls的, 你的邮箱reject了我的gmail,另外给一个邮箱吧。
POSTED @ 2008-11-11 00:45  回复  更多评论    
# re: 实现自己的j2me 企业应用UI-欢迎拍砖
不好意思,公司的邮箱有安全设置,用这个邮箱吧:mengsoft@yeah.net
POSTED @ 2008-11-12 22:35  回复  更多评论    
# re: 实现自己的j2me 企业应用UI-欢迎拍砖[未登录]
哥们你好,最近在看J2ME,看到你做的东西受益匪浅,有些想法想交流一下不知可否。
请联系zhoumin03(at)gmail.com
POSTED @ 2008-11-16 20:22  回复  更多评论    
# re: 实现自己的j2me 企业应用UI-欢迎拍砖
你做的界面很漂亮,我们公司是做手机终端开发的,可以交流一下。 
njlxp@163.com 
QQ:56412977
POSTED @ 2008-12-17 17:18  回复  更多评论    
# re: 实现自己的j2me 企业应用UI-欢迎拍砖
哥们你好,最近在看J2ME,看到你做的东西受益匪浅,我也正在开发一款手机应用,有些想法想交流一下不知可否。 

我的联系方式 

qq:94443583 
email:zqget123@gmail.com
POSTED @ 2009-04-02 23:36  回复  更多评论    
# re: 实现自己的j2me 企业应用UI-欢迎拍砖
哥们可以给我学习下不tan_jing_song@126.com
POSTED @ 2009-07-21 13:06  回复  更多评论    
# re: 实现自己的j2me 企业应用UI-欢迎拍砖[未登录]
非常不错,文本框支持直接的中文输入么? 
国外很多框架都是不支持中文输入的,类似于lwuit什么的 
这个界面挺漂亮的,不知道性能如何 
期待与楼主交流,donshow@163.com
POSTED @ 2009-09-17 13:53  回复  更多评论    
# re: 实现自己的j2me 企业应用UI-欢迎拍砖[未登录]
真好~~~~ 想学学 下了你的说明手册~ 
我想代码 你不会开源吧 看来学不成了。如果可以发邮件给我行吗 
linl@capitel.cn
POSTED @ 2009-11-13 14:10  回复  更多评论    
# re: 实现自己的j2me 企业应用UI-欢迎拍砖
你好,我想问问 你的特制的文本输入框是怎么实现的?大概原理能说说吗? 
我的邮箱是 ksi54@qq.com 不甚感谢
POSTED @ 2010-02-05 19:56  回复  更多评论    
# re: 实现自己的j2me 企业应用UI-欢迎拍砖
i know
POSTED @ 2010-02-05 21:37  回复  更多评论    
# re: 实现自己的j2me 企业应用UI-欢迎拍砖[未登录]
不错啊 交流交流
POSTED @ 2010-07-07 13:45  回复  更多评论    
# re: 实现自己的j2me 企业应用UI-欢迎拍砖
没有提供TabPannel之类的控件?
POSTED @ 2010-08-29 09:07  回复  更多评论    
# re: 实现自己的j2me 企业应用UI-欢迎拍砖
顶一个,楼主能不能分享下源码。我的邮箱zhouht888@126.com
POSTED @ 2010-09-16 16:54  回复  更多评论    
  • 收藏
  • 评论
  • 举报

上一篇:java 时区问题

下一篇:javaMe自定义菜单

提问和评论都可以,用心的回复会被更多人看到 评论
发布评论
相关文章

举报文章

请选择举报类型

内容侵权 涉嫌营销 内容抄袭 违法信息 其他

具体原因

包含不真实信息 涉及个人隐私

补充说明

0/200

上传截图

格式支持JPEG/PNG/JPG,图片不超过1.9M

已经收到您得举报信息,我们会尽快审核