MIDP图形用户界面结构分析

4、MIDP:移动信息设备配置文件详解 本文详细解析了MIDP(移动信息设备配置文件)的核心概念、MIDlet的生命周期、持久存储机制、网络与安全特性、用户界面开发、多媒体与游戏支持,以及MIDP开发工具和最佳实践。同时,介绍了MIDP的未来发展方向,如MIDP 3.0的新特性,旨在帮助开发者全面掌握基于Java ME平台的移动应用开发技术和技巧。 阅读详情

          图形用户界面编程在程序开发中非常重要,因为这是程序和用户之间交互的桥梁。很难想象一个应用程序没有用户界面。在J2SE中我们可以通过AWT/Swing开发图形用户界面,也可以使用近期备受关注的SWT。在J2ME专家组织定MIDP中的图形用户界面的时候,考虑到设备的性能比较有限,AWT/Swing主要是针对桌面应用程序而设计的原因,最终没有采用AWT/Swing作为MIDP的图形用户界面库。而重新设计了小巧的javax.microedition.lcdui包。本章将主要讲述MIDP图形用户界面的体系结构,并对各个类的作用和使用作简单的介绍。

    本文将按照MIDP2.0的规范进行介绍,我们必须清楚地知道在MIDP图形用户界面中是有低级图形用户界面和高级图形用户界面分别的。同样事件处理机制也有高低之分。

    首先我们通过图表来展示一下MIDP2.0中图形用户界面的体系结构

 

 

 



 

 

 






 

从结构中我们可以看到,Displayable是所有用户界面组件的超类。从Displayable中分出两个分支一个是Screen,另一个是Canvas。前者是高级图形用户界面的超类,后者是低级图形用户界面的超类。首先我们来看高级图形用户界面,Screen的四个子类分别是TextBox,List,Alert和Form。其中前面三个是预定义类型的组件,他们的内容基本定义好了,比如TextBox就是多行的输入框。而最后一个Form类是开放类型的,也可以成为容器类型。Form是负责管理Item的(Item后面我们会谈到),Form根据Item的信息对他们进行布局等规划。下面我们分别来描述一下这四个高级图形用户界面组件的功能

    TextBox是提供给用户输入多行数据的组件,我们也可以对用户的输入进行类型的限制。构造器如下TextBox(String title, String text, int maxSize, int constraints)

    List是提供给用户选择选项的组件,List实现了Choice接口。通常它可用做制作菜单和列表式信息如电话本。构造器如下
List(String title, int listType)
List(String title, int listType, String[] stringElements, Image[] imageElements)

    Alert则是用来在一段时间内显示信息给用户看,也可以作为确认框使用。构造器如下
Alert(String title)
Alert(String title, String alertText, Image alertImage, AlertType alertType)

    Form作为容器类,是通过在其中添加相应的Item来收集用户输入信息的,比如添加TextField。构造器如下
Form(String title)
Form(String title, Item[] items)

    最后我们必须要介绍的一个类就是Display,它是设备屏幕的代表,在我们的程序中只有一个Display的引用,通过方法Display.getDisplay(MIDlet midlet)得到。通过它我们得到当前设备屏幕的一些信息,比如色彩之类,但是最重要的是我们通过Display的setCurrent()方法来展现给用户不同的屏幕。

    下面我们必须介绍的是Item类,它是所有能够被添加到Form容器上的组件的父类,我们来看看Item的继承结构图



 



 

 






 

在MIDP2.0中,Item的子类共有8个,他们的功能各不相同,这里不再进行一一的介绍了。只对其中比较常用的类进行简单讲解。TextField类是我们经常使用的,它只能提供单行的输入。DateField类提供给用户输入日期的功能,ChoicGroup同样是实现了Choice接口,我们可以通过模式来把它用作单选和多选。CustomItem是在MIDP2.0中提供给用户的,其实它是介于高级和低级之间的用户界面,我们可以把它叫做增强型图形用户界面,因为它可以添加到Form中,且可以通过实现一系列的抽象方法来绘制自己。比如你可以实现一个表格组件。

    Canvas类是所有低级用户组件的父类,我们通过实现Canvas类的paint(Graphics g)方法来绘制屏幕,主要是使用Graphics类提供的各种方法。在MIDP2.0中提供了一个GameCanvas类,是专门为游戏开发设计的。关于Canvas类可以说的很详细,但是这里只是为了介绍体系结构所以不再多说了。

    接下来我们来看看MIDP图形用户界面中的事件处理机制,在高级图形用户界面中我们必须了解的是三个Listener和一个Command,其中的原理就是回调机制,回调在图形界面编程中广泛采用,它的原理就是底层函数调用高层函数,在java中我们定义一个接口,比如CommandListener,接口中定义一个方法比如commandAction(Command cmd,Displayable displayable)。当用户触发事件发生的时候,比如用户按下了一个Command,那么定义在CommandListener中的commandAction()方法会被调用,来处理相关的操作。其他两个Listener,ItemStateListener和ItemCommandListener的原理和CommandListener的原理一样不再多说。使用高级事件处理的时候,我们遵循的步骤就是,实现接口-注册监听器。

    低级事件处理比较复杂,需要我们判断用户的输入来进行相应的处理。针对键盘事件,如下三个方法用来接收用户的输入
keyPressed(int keyCode)  
keyReleased(int keyCode)
keyRepeated(int keyCode)
针对触摸屏事件,我们可以通过如下方法来接受用户输入事件。
pointerDragged(int x, int y)
pointerPressed(int x, int y)
pointerReleased(int x, int y)
关于低级事件的更多介绍,请参考本站的其他文章,这里不再讲解。

    总结:本文并非针对某一问题进行详细的分析,而是通过对体系结构的介绍让大家从总体上把握MIDP的图形用户界面。其实我们的学习就是在头脑中对外界知识进行整理和消化的过程,经常有意识的去总结和抽象对学习是很有帮助的。

MIDP和游戏用户界面 立即下载

相关推荐

Amesim管路仿真进阶:如何用阻力管实现不规则管路的高精度模拟

本文深入探讨了在Amesim仿真中,如何利用阻力管(Orifice with Table)元件,特别是TFORT0子模型,实现对不规则管路的高精度模拟。通过直接输入基于测试或CFD的流量-压降数据,该方法能有效弥补标准管路模型在复杂流道、内部结构复杂等场景下的不足,为液压、热管理等系统仿真提供精准可靠的部件模型。

cicd6pipeline的博客 671

界面设计中的结构设计

构建界面视觉层级的元素有颜色的显著程度,图片、文字的尺寸大小,还有最基础的,内容的组织结构。 结构设计是指对界面内容进行分组,对界面中的信息、数据进行设计使之结构化呈现的过程。 好的结构设计能使界面信息传达更加清晰、快捷。那么,如果进行结构设计呢? 结构设计———内容的分组 使用线、框、背景色来分组 这是最常见的分组方式,在UI设计中历史悠久。 使用线来分组 使用框来分组

养有道 1123

海康威视iSC平台视频流对接:RTSP、HLS、WS三种协议到底该怎么选?

本文深入分析海康威视iSC平台视频流对接中RTSP、HLS和WebSocket三种协议的优缺点,帮助开发者根据实时性、兼容性和网络环境做出最优选择。特别适合综合安防管理平台的Web视频监控系统开发,提升用户体验和系统性能。

weixin_28365523的博客 692

J2ME学习笔记(1)--MIDP用户界面设计概述的学习

MIDP用户界面设计概述的学习   类比J2SE的UI机制移动设备所采取的是屏幕模型机制(MIDlet小程序)。这是由于移动设备本身的硬件与一些用户交互特性所结定。  屏幕模型:MIDP提供了一套标准的用户界面控件库,而这些控件是以屏幕模型为设计理念,屏幕模型是MIDP界面的核心概念。屏幕是对反应用户输入的设备相关图形进行封装的对象,可以帮助开发者根据不同需求将控件组装成不同的屏幕,而程序

技术的学习与积累是个技术活 1548

Docker部署 SRS rtmp/flv流媒体服务器

SRS(Simple Realtime Server)是一款开源的流媒体服务器,具有高性能、高可靠性、高灵活性的特点,能够支持直播、点播、转码等多种流媒体应用场景。SRS 不仅提供了流媒体服务器,还提供了适用于多种平台的客户端 SDK 和在线转码等辅助服务,是一款十分强大的流媒体解决方案。

m0_56659620的博客 4869

CMOS锁相环核心:四种鉴频鉴相器(PFD)结构深度剖析与选型指南

本文深入剖析了CMOS锁相环中四种鉴频鉴相器(PFD)的结构与性能,包括传统RS触发器型、非时钟型、预充电型和边沿触发型PFD。通过详细的电路分析、实测数据和工程案例,提供了PFD选型的实用指南,帮助工程师根据速度、功耗和精度需求选择最优方案,提升锁相环设计效率。

weixin_42530458的博客 588

Python数据分析基础:Numpy与Matplotlib核心原理与实战应用

多维数组是科学计算中的基础数据结构,Numpy通过连续内存存储和向量化操作实现了高效的数值计算,其广播机制允许不同形状数组进行数学运算,极大提升了数据处理性能。数据可视化作为数据分析的关键环节,Matplotlib提供了灵活的图表定制能力,支持从基础线图到复杂3D图表的创建。在Python数据科学生态中,Numpy的ndarray和Matplotlib的可视化组件构成了底层技术基石,为高级框架如pandas和scikit-learn提供支撑。实际应用中,Numpy的高效数组操作结合Matplotlib的专业

congji3817的博客 405

跨时钟域传输数据——单bit和多bit信号(总结)

总结单bit和多bit信号的跨时钟域传输

qq_42135020的博客 1万+

MIDP高级图形用户界面详解

一、MIDP图形用户界面(UI)简介图形用户界面编程在程序开发中非常重要,因为这是程序和用户之间交互的桥梁。在J2SE中我们可以通过AWT/Swing开发图形用户界面,也可以使用SWT,AWT/Swing主要是针对桌面应用程序而设计。但由于移动设备的显示屏幕和键盘实是种类太多了,几乎每个厂家都多多少少有所不同,设备的性能也比较有限,因此没有采用AWT/Swing作为MIDP的图形用户界面库,而建立

wwy25525761的专栏 844

PX4算法解析:L1制导律

一、前沿 从今天开始,会陆续为大家解读开源飞控软件px4中使用到的各种算法,今天要讲述的是L1制导律,这是固定翼飞机进行路径跟踪的重要算法之一。这个算法是由MIT的研究人员提出,因为具有比较好的路径跟踪效果而得到广泛应用。在这之前,无人机在进行路径跟踪时一般采用基于侧偏距的PD控制器方法,至于为什么使用PD而不使用PID算法,那是因为位置环响应较慢,所以一般在外环采用PD算法,而在内环采用PID算...

weixin_44616080的博客 8257

大陆毫米波雷达ARS408-21xx实战:从零搭建ROS环境下的目标检测与可视化

本文详细介绍了大陆毫米波雷达ARS408-21xx在ROS环境下的实战部署全流程。从硬件连接、CAN总线配置,到ROS驱动节点开发、CAN报文解析,再到RViz三维可视化实现,提供了完整的代码示例与调试技巧,帮助开发者快速搭建毫米波雷达目标检测与可视化系统。

open4的博客 634

MIDP图形用户界面结构

        图形用户界面编程在程序开发中非常重要,因为这是程序和用户之间交互的桥梁。很难想象一个应用程序没有用户界面。在J2SE中我们可以通过AWT/Swing开发图形用户界面,也可以使用近期备受关注的SWT。在J2ME专家组织定MIDP中的图形用户界面的时候,考虑到设备的性能比较有限,AWT/Swing主要是针对桌面应用程序而设计的原因,最终没有采用AWT/Swing作为MIDP的图形用户界

862

避坑指南:PyTorch ConvLSTM参数配置的那些坑(hidden_dim/kernel_size/num_layers详解)

本文深度解析PyTorch ConvLSTM中hidden_dim、kernel_size和num_layers三大核心参数的配置技巧,提供实战指南和性能优化建议。通过实验数据揭示参数组合的内在规律,帮助开发者避免常见配置陷阱,提升时空序列建模效果。特别针对视频预测、气象预报等应用场景,给出黄金参数组合方案和调试技巧。

vv45678的博客 703

MIDP

http://java.sun.com/products/midp/overview.html MIDP(Mobile Information Device Profile,移动信息设备配置文件)建立在 CLDC 的基础之上,用来描述手机和寻呼机这样更加具体化的的无线移动设备。  对于 Java ME 平台,MIDP 定义了一个标准的 Java API 集合,此集合与联网的受限设备配置

91program 的流水空间 2024

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Java手游编程之MIDP图形设计篇

本文通过一个简单的MIDlet手游程序示例,简要介绍了MIDlet图形编程,以期能对开发者深入理解MIDP图形编程和开发复杂的手机游戏有所帮助。   一. MIDLET图形   1、MIDlet 图形简述   移动信息设备描述(Mobile Information Device Profile ,MIDP)定义了一套应用编程接口(API),用于运行在MIDP容器中的MIDlet应用程序。这套API本身是建立在有限连接设备配置(Connected Limited Device Configuration ,C

iqifenxia的博客 602

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

MIDP是什么?

MIDP 求助编辑百科名片 MIDP(Mobile Information Device Profile,移动信息设备配置文件)建立在 CLDC 的基础之上,用来描述手机和寻呼机这样更加具体化的的无线移动设备。 目录 简介功能MIDP 1.0MIDP 2.0MIDP 2.1 编辑本段简介   对于 Java ME 平台,MIDP 定义...

weixin_30394633的博客 395

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

J2ME笔记(2)--MIDP

 MIDP(Mobile Information Device Profile,移动信息设备简表)位于CLDC基础之上,为开发者提供了应用程序模型、图形用户界面、数据持久性存储等功能,目前最新的版本是MIDP 2.0(JSR 118)。在介绍MIDP的主要内容之前,先浏览一下移动信息设备上的软件运行环境,从中你可以了解到CLDC和MIDP的关系,以及他们位于整个软件运行环境的位置,如图1-4所

zhang116868的专栏 909

MIDP图形设计2

  2、MIDlet屏幕   MIDP有两种主要的屏幕类型:   A 高级屏幕    它包括简单的高级屏幕类,例如List和TextBox。用户不能添加额外的图形用户界面组件到这种类型的屏幕中。九宫格MIDlet示例程序使用的屏幕是继承于名为ChoosePieceScreen的List类,用于游戏者在游戏开始时选择棋子。    一般的Form屏幕类和List类很相像,但是它允许使用额外的图形元素,

!Java 2576

Java手机游戏编程之MIDP图形设计篇

介绍   本文通过一个简单的MIDlet游戏程序示例,简要介绍了MIDlet图形编程,以期能对开发者深入理解MIDP图形编程和开发复杂的移动游戏有所帮助。   一. MIDLET图形   1、MIDlet 图形简述   移动信息设备描述(Mobile Information Device Profile ,MIDP)定义了一套应用编程接口(API),用于运行在MIDP容器中的MIDlet应用程序。

海龙的天空 1853

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

KJAVA虚拟机Hack笔记-MIDP HighLevel GUI概述转载时请注明出处和作者联系方式文章出处:http://www.limodev.cn/blog作者联系方式:李先静 KJAVA虚拟机Hack笔记-MIDP HighLevel GUI概述MIDP 高级图形用户界面提供三种窗口,它们都从Displayable类继承过来:Alert提醒窗口。用来

国产开源 GUI 引擎 AWTK 1628

MIDP1.0跟MIDP2.0之间的区别 (网上摘录)

MIDP2.0相对于MIDP1.0最大的变化就是增加了media和game包,在rms的读取也有微小的改动.其实,MIDP2.0主要是给游戏开发提供方便,采用增加的两个包能够快速开发游戏程序,效率相对于MIDP1.0要高些. 不过现在的市场行情是,支持MIDP2.0的手机比支持MIDP1.0的远远要少,考虑到市场的效应,还是应用MIDP1.0的为多.并且根据目前的状况,此情形还会持续很长一...

shizhiwu84的博客 406

MIDP图形设计1

  介绍   本文通过一个简单的MIDlet游戏程序示例,简要介绍了MIDlet图形编程,以期能对开发者深入理解MIDP图形编程和开发复杂的移动游戏有所帮助。  一. MIDLET图形  1、MIDlet 图形简述   移动信息设备描述(Mobile Information Device Profile ,MIDP)定义了一套应用编程接口(API),用于运行在MIDP容器中的MIDlet应用程序。

!Java 2744
上一篇: 共享一些J2ME的源码
下一篇: 基于MIDP2.0实现图片的缩放功能
mingjava
博客等级 码龄24年 68粉丝 114原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值