国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

MIDP圖形用戶界面結構分析

2019-11-18 16:09:09
字體:
來源:轉載
供稿:網友

MIDP圖形用戶界面結構分析(圖一)    圖形用戶界面編程在程序開發中非常重要,因為這是程序和用戶之間交互的橋梁。很難想象一個應用程序沒有用戶界面。在J2SE中我們可以通過AWT/Swing開發圖形用戶界面,也可以使用近期備受關注的SWT。在J2ME專家組織定MIDP中的圖形用戶界面的時候,考慮到設備的性能比較有限,AWT/Swing主要是針對桌面應用程序而設計的原因,最終沒有采用AWT/Swing作為MIDP的圖形用戶界面庫。而重新設計了小巧的javax.microedition.lcdui包。本章將主要講述MIDP圖形用戶界面的體系結構,并對各個類的作用和使用作簡單的介紹。

    本文將按照MIDP2.0的規范進行介紹,我們必須清楚地知道在MIDP圖形用戶界面中是有低級圖形用戶界面和高級圖形用戶界面分別的。同樣事件處理機制也有高低之分。

    首先我們通過圖表來展示一下MIDP2.0中圖形用戶界面的體系結構
MIDP圖形用戶界面結構分析(圖二)

 

 

 

 

 

 

 

 

從結構中我們可以看到,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的繼承結構圖
MIDP圖形用戶界面結構分析(圖三)

 

 

 

 

在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的圖形用戶界面。其實我們的學習就是在頭腦中對外界知識進行整理和消化的過程,經常有意識的去總結和抽象對學習是很有幫助的。

(出處:http://www.survivalescaperooms.com)



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 锡林郭勒盟| 重庆市| 阿克陶县| 永年县| 金塔县| 安溪县| 潞西市| 青川县| 洪泽县| 虹口区| 陇川县| 渭南市| 兴城市| 桐乡市| 靖安县| 太和县| 郓城县| 和顺县| 金门县| 永平县| 定远县| 青龙| 翁源县| 沂源县| 朔州市| 合川市| 铅山县| 色达县| 城市| 伊川县| 车险| 会宁县| 青川县| 吴旗县| 兴宁市| 宣城市| 赣州市| 鄂尔多斯市| 黄骅市| 遂川县| 霍州市|