LCDUI(Limited Configuration Device UI) 不用AWT/SWING的原因:移动设备CPU慢,内存小;没有鼠标,只是触控屏幕和简单的按钮;屏幕小,不需要重叠窗口;消息处理机制负荷太重。 LCDUI高级API(Screen子类)具有移植性,对画面的掌控程度较低,组件的属性由系统来决定。 LCDUI低级API(使用Canvas的子类和Graphics类)对整个手机的画面具有完全控制权。 两者可以在同一个MIDLet里混合使用。 Displayable抽象类:javax.microedition.lcdui.Displayable的子类可以分成两大类: Canvas和Screen。Canvas属于低级图形用户界面组件,Screen属于高级图形用户界面组件。 在同一时间,只能由唯一一个Canvas或Screen类的子类出现在屏幕上。 setCurrent()被调用时,前一画面就被取代,所以要自行保存当前画面。 事件处理: 在MIDP中,只要底层侦测到有事件发生,系统就会调用固定接口中的特定方法(回调函数),并传给它特定的参数。 和用户界面相关的回调函数: 1 经由abstract command (javax.microedition.lcdui.Command) 2 使用低级API时,如果机器上的按钮被按下或是触控屏幕被触动时,就调用对应的事件,即使用javax.microedition.lcdui.Canvas类。 3 屏幕重绘时,产生重绘事件,此时Canvas类的paint()被调用,并传入一个Graphics对象的引用。 4 调用Display类的callSerially()方法时,传入一个实现Runnable接口的类,其中的run()会被调用。 Command类 Displayable对象定义了addCommand()/removeCommand()方法 Command类三个参数的构造函数:Command c1=new Command("Back_1",Command.BACK,1); Command类四个参数的构造函数:Command c1=new Command(短命令,长命令,类型,优先权); 取相应的值:getLabel() getLongLabel() getCommandType() getPriority() 八种类型: BACK CANCEL EXIT HELP ITEM OK SCREEN STOP 并不会因为设定成某一种类就具有该类型“名称上”的功能。 CommandListener:事件处理接口 委托模型(Delegation Model) setCommandListener()注册事件处理函数。 commandAction()被调用,当注册事件产生时。 Ticker类 跑马灯。Displayable子类都可以加入Ticker。setTicker()/getTicker()。 标题 setTitle()/getTitle()。 
|