用J2ME实现低级界面中文输入法

 

J2ME平台的UI界面分为两种,一种称为高级UI组件,一种叫做低级UI组件。高级的UI组件使用方便,创建一个窗口只需要把参数传入相应的构造就可以了。但是高级UI组件无法自定义样式,一般都是手机默认的样式。如果想界面美观只能用低级界面来画出来。这样就出现一个问题,当涉及到输入文字的时候,还是会回到高级界面调用手机本身的输入法,这给程序的美观性大打折扣。所以我尝试性的用J2ME写了一个仿照PC上的智能ABC的输入法,可以直接在低级界面上使用,因为它是由Graphics对象画出来的。以下是调用的效果:

这个输入法作为一个UI组件来出现, 界面上通过Graphics对象来画,控制上通过接收keyPressed(int keycode)和keyReleased(int keycode)的按键值进行键盘操作。大体功能如下:
1、支持汉字,英文大小写,数字,特殊符号输入。
2、闪动的光标指示,可以通过方向键进行移动,便于插入和修改文字。
3、可以限制功能,比如只允许输入汉字,只允许输入英文等等。
4、字符的复制,粘贴,剪切功能(尚未实现)。
当然这个输入法类需要一个Textfield或者TextBox类来配合使用,当然这两个类也要用低级界面来从新实现才可以。
这个输入法由一个数据文件(字库)和一个类文件组成,数据文件大约10K左右,类文件大约1000行。字库包含所有常用汉字,实际占用的Heap内存大约在40k左右,或者低于这个值,因为测试的时候,我的界面上还有其它很多的UI在同时运行。这个输入法对于J2ME的应用程序的界面风格会起到很大的帮助,所以我想这点内存花销应该是值得的。

你可能感兴趣的:(J2ME)