- J2ME手機(jī)游戲設(shè)計(jì)與開(kāi)發(fā)
- 劉暢 張旭輝編著
- 61字
- 2019-01-01 07:08:52
3.2 Display與Displayable
MIDP中使用Display類對(duì)用戶界面進(jìn)行管理,與應(yīng)用程序進(jìn)行交互,而Displayable類及其子類對(duì)象則是可顯示的用戶界面,也就是Display類管理的對(duì)象。
3.2.1 Display類及其常用方法
Display:javax.microedition.lcdui.Display
Display類是顯示屏幕和輸入設(shè)備的管理對(duì)象,常用來(lái)獲取設(shè)備的屬性及顯示屏幕對(duì)象,是每個(gè)MIDP程序不可或缺的對(duì)象,Display類的常用方法如表3-3所示。
表3-3 Display類的常用方法
Display對(duì)象是MIDP程序的中心控制者,通常通過(guò)在MIDlet實(shí)例中調(diào)用Display類的getDisplay()方法獲取。
Display disp; disp=Display.getDisplay(this);
在每一個(gè)MIDP應(yīng)用程序中Display對(duì)象是唯一的,this代表的是本類即MIDlet對(duì)象。
獲取Display對(duì)象后就可以通過(guò)setCurrent()方法設(shè)置顯示的屏幕對(duì)象。
disp.setCurrent(displayable); disp.setCurrent(alert,displayable);
第一種方法是設(shè)置displayable對(duì)象為當(dāng)前顯示對(duì)象,第二種方法是設(shè)置alert為當(dāng)前顯示對(duì)象,當(dāng)alert顯示結(jié)束后顯示displayable對(duì)象。
除了顯示屏幕對(duì)象外,還可以通過(guò)Display對(duì)象獲取一些設(shè)備信息,代碼參見(jiàn)【例3-1】。
【例3-1】 獲取Display對(duì)象信息。
import javax.microedition.lcdui.Display; import javax.microedition.midlet.MIDlet; import javax.microedition.midlet.MIDletStateChangeException; public class mainMidlet extends MIDlet { Display disp; public mainMidlet() { disp=Display.getDisplay(this); System.out.println("當(dāng)前顯示屏幕對(duì)象"+disp.getCurrent()); System.out.println("---------------------------------"); System.out.println("是否支持彩色"+disp.isColor()); System.out.println("支持彩色的數(shù)目"+disp.numColors()); System.out.println("支持的透明層數(shù)"+disp.numAlphaLevels()); System.out.println("設(shè)備的背景顏色"+disp.getColor(Display.COLOR_ BACKGROUND)); System.out.println("---------------------------------"); System.out.println("是否支持震動(dòng)效果"+disp.vibrate(100)); System.out.println("是否支持背景光顏色"+disp.flashBacklight(100)); System.out.println("---------------------------------"); System.out.println("當(dāng)前筆觸"+disp.getBorderStyle(false)); } protected void destroyApp(boolean arg0) throws MIDletStateChange Exception { } protected void pauseApp() { } protected void startApp() throws MIDletStateChangeException { } }
程序的執(zhí)行結(jié)果如下:
當(dāng)前顯示屏幕對(duì)象null --------------------------------- 是否支持彩色true 支持彩色的數(shù)目4096 支持的透明層數(shù)256 設(shè)備的背景顏色16777215 --------------------------------- 是否支持震動(dòng)效果false 是否支持背景光顏色false --------------------------------- 當(dāng)前筆觸1
注意:當(dāng)使用不同的手機(jī)模擬器時(shí),執(zhí)行的結(jié)果是不一樣的。
3.2.2 Display類與Displayable類之間的關(guān)系
如果說(shuō)Display是MIDP程序的管理者,那么Displayable就是被管理的對(duì)象,通過(guò)對(duì)不同的Displayable對(duì)象進(jìn)行操作就改變了應(yīng)用程序的界面顯示和用戶交互。Displayable類本身是抽象類,不能直接實(shí)例化,具體的應(yīng)用是通過(guò)其子類來(lái)完成的。Displayable類主要是提供一些常用的方法如表3-4所示。
表3-4 Displayable類的常用方法
Displayable是一個(gè)抽象類,主要是通過(guò)它的兩個(gè)子類Canvas和Screen來(lái)實(shí)現(xiàn)界面的顯示的,其中Screen為高級(jí)屏幕類,封裝了完整的用戶界面組件。下面是一個(gè)運(yùn)用Display對(duì)象對(duì)高級(jí)屏幕類進(jìn)行顯示的實(shí)例,代碼參見(jiàn)【例3-2】。
【例3-2】 運(yùn)用Display對(duì)象顯示高級(jí)屏幕類對(duì)象。
import javax.microedition.lcdui.*; import javax.microedition.midlet.*; public class mainMidlet extends MIDlet { Display disp; Form f; public mainMidlet() { disp=Display.getDisplay(this); f=new Form("歡迎來(lái)到手機(jī)世界"); } protected void destroyApp(boolean arg0) throws MIDletStateChange Exception { } protected void pauseApp() { } protected void startApp() throws MIDletStateChangeException { disp.setCurrent(f); } }
程序的執(zhí)行結(jié)果如圖3-3所示。

圖3-3 程序執(zhí)行結(jié)果
注意:在同一時(shí)刻應(yīng)用程序最多只有一個(gè)Displayable對(duì)象被顯示在屏幕上,如果多次調(diào)用setCurrent()方法,最后顯示的對(duì)象將覆蓋之前顯示的對(duì)象。
- PIC單片機(jī)C語(yǔ)言非常入門與視頻演練
- Visual Basic從初學(xué)到精通
- Ceph:Designing and Implementing Scalable Storage Systems
- MATLAB/Simulink權(quán)威指南:開(kāi)發(fā)環(huán)境、程序設(shè)計(jì)、系統(tǒng)仿真與案例實(shí)戰(zhàn)
- Windows Server 2003系統(tǒng)安全管理
- SAP Business Intelligence Quick Start Guide
- 悟透AutoCAD 2009案例自學(xué)手冊(cè)
- 空間機(jī)械臂建模、規(guī)劃與控制
- Access 2007數(shù)據(jù)庫(kù)入門與實(shí)例應(yīng)用金典
- Flash CS5二維動(dòng)畫設(shè)計(jì)與制作
- 數(shù)據(jù)庫(kù)基礎(chǔ):Access
- Raspberry Pi 3 Projects for Java Programmers
- Office 2010輕松入門
- Arduino創(chuàng)意機(jī)器人入門:基于Mixly
- 數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)