zoukankan      html  css  js  c++  java
  • 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+时,我选择了这种方式。后面再讨论每个窗口和控件的实现。

  • 相关阅读:
    第07节-开源蓝牙协议BTStack框架代码阅读(上)
    第06节-开源蓝牙协议BTStack框架分析
    第05节-BLE协议物理层(PHY)
    第04节-BLE协议抓包演示
    第03节-BLE协议各层数据格式概述
    【重点声明】此系列仅用于工作和学习,禁止用于非法攻击。一切遵守《网络安全法》
    海外信息安全资源
    从浏览器攻击思考入门的问题。
    攻击载荷免杀技术
    聊聊NTLM认证协议
  • 原文地址:https://www.cnblogs.com/zhangyunlin/p/6167520.html
Copyright © 2011-2022 走看看