- J2ME手機游戲設(shè)計與開發(fā)
- 劉暢 張旭輝編著
- 395字
- 2019-01-01 07:08:53
3.2 Display與Displayable
MIDP中使用Display類對用戶界面進行管理,與應(yīng)用程序進行交互,而Displayable類及其子類對象則是可顯示的用戶界面,也就是Display類管理的對象。
3.2.1 Display類及其常用方法
Display:javax.microedition.lcdui.Display
Display類是顯示屏幕和輸入設(shè)備的管理對象,常用來獲取設(shè)備的屬性及顯示屏幕對象,是每個MIDP程序不可或缺的對象,Display類的常用方法如表3-3所示。
表3-3 Display類的常用方法
Display對象是MIDP程序的中心控制者,通常通過在MIDlet實例中調(diào)用Display類的getDisplay()方法獲取。
Display disp; disp=Display.getDisplay(this);
在每一個MIDP應(yīng)用程序中Display對象是唯一的,this代表的是本類即MIDlet對象。
獲取Display對象后就可以通過setCurrent()方法設(shè)置顯示的屏幕對象。
disp.setCurrent(displayable); disp.setCurrent(alert,displayable);
第一種方法是設(shè)置displayable對象為當(dāng)前顯示對象,第二種方法是設(shè)置alert為當(dāng)前顯示對象,當(dāng)alert顯示結(jié)束后顯示displayable對象。
除了顯示屏幕對象外,還可以通過Display對象獲取一些設(shè)備信息,代碼參見【例3-1】。
【例3-1】 獲取Display對象信息。
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)前顯示屏幕對象"+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("是否支持震動效果"+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)前顯示屏幕對象null --------------------------------- 是否支持彩色true 支持彩色的數(shù)目4096 支持的透明層數(shù)256 設(shè)備的背景顏色16777215 --------------------------------- 是否支持震動效果false 是否支持背景光顏色false --------------------------------- 當(dāng)前筆觸1
注意:當(dāng)使用不同的手機模擬器時,執(zhí)行的結(jié)果是不一樣的。
3.2.2 Display類與Displayable類之間的關(guān)系
如果說Display是MIDP程序的管理者,那么Displayable就是被管理的對象,通過對不同的Displayable對象進行操作就改變了應(yīng)用程序的界面顯示和用戶交互。Displayable類本身是抽象類,不能直接實例化,具體的應(yīng)用是通過其子類來完成的。Displayable類主要是提供一些常用的方法如表3-4所示。
表3-4 Displayable類的常用方法
Displayable是一個抽象類,主要是通過它的兩個子類Canvas和Screen來實現(xiàn)界面的顯示的,其中Screen為高級屏幕類,封裝了完整的用戶界面組件。下面是一個運用Display對象對高級屏幕類進行顯示的實例,代碼參見【例3-2】。
【例3-2】 運用Display對象顯示高級屏幕類對象。
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("歡迎來到手機世界"); } 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é)果
注意:在同一時刻應(yīng)用程序最多只有一個Displayable對象被顯示在屏幕上,如果多次調(diào)用setCurrent()方法,最后顯示的對象將覆蓋之前顯示的對象。
- Instant Raspberry Pi Gaming
- JavaScript實例自學(xué)手冊
- 機器人創(chuàng)新實訓(xùn)教程
- AutoCAD 2012中文版繪圖設(shè)計高手速成
- 統(tǒng)計學(xué)習(xí)理論與方法:R語言版
- 運動控制器與交流伺服系統(tǒng)的調(diào)試和應(yīng)用
- 計算機網(wǎng)絡(luò)原理與技術(shù)
- 手把手教你學(xué)Flash CS3
- 大型機系統(tǒng)應(yīng)用基礎(chǔ)
- Keras Reinforcement Learning Projects
- VMware vSphere 6.5 Cookbook(Third Edition)
- 單片機原理、應(yīng)用與仿真
- 機器人輔助C程序設(shè)計
- Oracle Fusion Applications Administration Essentials
- 黑客防線2012合訂本