KJAVA虚拟机Hack笔记MIDP HighLevel GUI概述

KJAVA虚拟机Hack笔记-MIDP HighLevel GUI概述

转载时请注明出处和作者联系方式
文章出处:http://www.limodev.cn/blog
作者联系方式:李先静 <xianjimli at hotmail dot com>

KJAVA虚拟机Hack笔记-MIDP HighLevel GUI概述

MIDP 高级图形用户界面提供三种窗口,它们都从Displayable类继承过来:

Alert提醒窗口。用来实现信息,警告,错误和确认等提醒窗口。可以设置一个时间,时间到了就自动关闭。Alert窗口可以显示五项内容:窗口标题(title),提醒内容(alertText),提醒的图片(alertImage),命令(Command)和一个进度条(indicator)。

Form正常窗口。用来实现正常的窗口,在上面可以放各种基本控件,包括自定义的控件。窗口上可以放多个控件,一般每个控件占一行,每一行具有相同的宽度,而且不允许出现左右滚动条。每行的高度可以不一样,可以出现垂直滚动条,对控件的个数没有限制。

Canvas 提供低级的图形接口。可以在上面绘制各种图形,处理各种GUI事件。与Alert和Form不同的是,Canvas不能直接使用,必须继承它并实现paint接口函数才能使用。

MIDP 高级图形用户界面还提供了一些控件,每一个控件都从Item继承过来,每个Item都有一个Label。控件主要有:

StringItem显示一段只读的文本内容。它的字体可以改变,也可以通过appearanceMode来设置它的外观。

TextField 文本编辑器。可以用initialInputMode设置输入法的类型,用constraints来设置输入内容的限制,比如输入密码时不能回显输入的内容。

ImageItem 显示一张图片。

Gauge 相当于进度条,但是在交互模式下,用户可以修改它的值。在非交互模式下,INCREMENTAL_IDLE、CONTINUOUS_RUNNING、 INCREMENTAL_UPDATING、INCREMENTAL_UPDATING和CONTINUOUS_RUNNING是几个特殊的值。

DateField 用于选择日期和时间,可以单独选择时间或日期。

ChoiceGroup 用于实现单选和多选等选择控件。它有四种类型:EXCLUSIVE单选 ,MULTIPLE多选,POPUP有点像ComboBox吧,IMPLICIT有点像单选 ,好像只是在选择时要触发一个事件。

在实现上,有两种方式:

一种是基于JAVA的实现,代码在lfjport目录里,这种实现自成体系,只要需要编写很少的native代码,适合于移植到单纯的fb。但是表现形式可能与Native程序差别很大。

另一种是基于NativeGUI的实现,代码在lfpport目录里,这种方式通过包装Native控件来实现,所以和Native程序的用户界面表现几乎没有差别。要做的工作依赖于具体的Native GUI,像在QTE和GTK+等GUI上,按这种方式实现,工作量也不会太大,在移植到GTK+时,我选择了这种方式。后面再讨论每个窗口和控件的实现。

原文地址:https://www.cnblogs.com/zhangyunlin/p/6167520.html