- J2ME手機游戲設計與開發
- 劉暢 張旭輝編著
- 593字
- 2019-01-01 07:08:53
3.2 Display與Displayable
MIDP中使用Display類對用戶界面進行管理,與應用程序進行交互,而Displayable類及其子類對象則是可顯示的用戶界面,也就是Display類管理的對象。
3.2.1 Display類及其常用方法
Display:javax.microedition.lcdui.Display
Display類是顯示屏幕和輸入設備的管理對象,常用來獲取設備的屬性及顯示屏幕對象,是每個MIDP程序不可或缺的對象,Display類的常用方法如表3-3所示。
表3-3 Display類的常用方法
Display對象是MIDP程序的中心控制者,通常通過在MIDlet實例中調用Display類的getDisplay()方法獲取。
Display disp; disp=Display.getDisplay(this);
在每一個MIDP應用程序中Display對象是唯一的,this代表的是本類即MIDlet對象。
獲取Display對象后就可以通過setCurrent()方法設置顯示的屏幕對象。
disp.setCurrent(displayable); disp.setCurrent(alert,displayable);
第一種方法是設置displayable對象為當前顯示對象,第二種方法是設置alert為當前顯示對象,當alert顯示結束后顯示displayable對象。
除了顯示屏幕對象外,還可以通過Display對象獲取一些設備信息,代碼參見【例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("當前顯示屏幕對象"+disp.getCurrent()); System.out.println("---------------------------------"); System.out.println("是否支持彩色"+disp.isColor()); System.out.println("支持彩色的數目"+disp.numColors()); System.out.println("支持的透明層數"+disp.numAlphaLevels()); System.out.println("設備的背景顏色"+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("當前筆觸"+disp.getBorderStyle(false)); } protected void destroyApp(boolean arg0) throws MIDletStateChange Exception { } protected void pauseApp() { } protected void startApp() throws MIDletStateChangeException { } }
程序的執行結果如下:
當前顯示屏幕對象null --------------------------------- 是否支持彩色true 支持彩色的數目4096 支持的透明層數256 設備的背景顏色16777215 --------------------------------- 是否支持震動效果false 是否支持背景光顏色false --------------------------------- 當前筆觸1
注意:當使用不同的手機模擬器時,執行的結果是不一樣的。
3.2.2 Display類與Displayable類之間的關系
如果說Display是MIDP程序的管理者,那么Displayable就是被管理的對象,通過對不同的Displayable對象進行操作就改變了應用程序的界面顯示和用戶交互。Displayable類本身是抽象類,不能直接實例化,具體的應用是通過其子類來完成的。Displayable類主要是提供一些常用的方法如表3-4所示。
表3-4 Displayable類的常用方法
Displayable是一個抽象類,主要是通過它的兩個子類Canvas和Screen來實現界面的顯示的,其中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); } }
程序的執行結果如圖3-3所示。

圖3-3 程序執行結果
注意:在同一時刻應用程序最多只有一個Displayable對象被顯示在屏幕上,如果多次調用setCurrent()方法,最后顯示的對象將覆蓋之前顯示的對象。
- Go Machine Learning Projects
- Circos Data Visualization How-to
- ETL with Azure Cookbook
- 計算機網絡應用基礎
- 系統安裝與重裝
- 新手學電腦快速入門
- 信息物理系統(CPS)測試與評價技術
- 數字多媒體技術基礎
- Learning Cassandra for Administrators
- DynamoDB Applied Design Patterns
- Moodle 2.0 Course Conversion(Second Edition)
- 工業機器人技術
- 傳感器應用技術
- Practical Autodesk AutoCAD 2021 and AutoCAD LT 2021
- 局域網應用一點通