MIDP圖形用戶界面_第1頁
MIDP圖形用戶界面_第2頁
MIDP圖形用戶界面_第3頁
MIDP圖形用戶界面_第4頁
MIDP圖形用戶界面_第5頁
已閱讀5頁,還剩53頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

復(fù)習(xí)配備CDCCLDC簡表MIDPMIDlet生命周期第5章MIDP圖形顧客界面—高級(jí)API本章學(xué)習(xí)導(dǎo)航本章學(xué)習(xí)要點(diǎn)(1)MIDP圖形顧客界面概述;(2)Display類和Displayable類的應(yīng)用;(3)Alert類的應(yīng)用;(4)Command類和CommandListener接口的應(yīng)用;(5)Form類的應(yīng)用;(6)Item有關(guān)類的應(yīng)用;(7)Choice接口及有關(guān)類的應(yīng)用;(8)TextBox類和TextField類的應(yīng)用;(9)DateField類的應(yīng)用;(10)Ticker類的應(yīng)用;(11)Gauge類和Spacer類的應(yīng)用。

5.1MIDP圖形顧客界面概述JavaSE的GUI:抽象窗口工具箱(AbstractWindowingToolkitAWT)/SwingJavaME的GUI:javax.microedition.lcdui包LimitedConfigurationDeviceUserInterface因素: 設(shè)備顯示屏幕的限制 CPU解決能力的限制 移動(dòng)設(shè)備內(nèi)存容量的限制

GUI概述

5.1MIDP圖形顧客界面概述1.高級(jí)API高級(jí)界面的效果是由控件構(gòu)成的。移植性好重要功效有:移動(dòng)設(shè)備屏幕上的實(shí)際繪制工作;導(dǎo)航條、滾動(dòng)條等某些原始交互手段被封裝到高級(jí)API中;應(yīng)用程序不能訪問具體的輸入設(shè)備(如特定的某個(gè)按鈕等)。2.低檔API低檔界面效果是通過手工編程,在畫布上畫出來的 低檔API被設(shè)計(jì)用于需要精擬定位位置和控制圖形元素的應(yīng)用程序(如游戲等)。低檔API能夠?qū)崿F(xiàn)功效:充足地控制屏幕所要繪制的信息;監(jiān)聽低檔事件(例如按鈕被按下或釋放等);訪問具體的按鈕和其它的輸入設(shè)備。

GUI概述

5.1MIDP圖形顧客界面概述

GUI概述

5.1MIDP圖形顧客界面概述高級(jí)界面:

能夠充滿整個(gè)界面的控件——javax.microedition.lcdui.Displayable的子類

不能充滿整個(gè)界面的控件——javax.microedition.lcdui.Item的子類

高級(jí)界面

圖形顧客界面體系構(gòu)造Screen類Alert:用于高級(jí)界面開發(fā)中的提示框Form:用于高級(jí)界面開發(fā)中的表單List:用于高級(jí)界面開發(fā)中的列表框TextBox:用于高級(jí)界面開發(fā)中的文本框5.2

Display類和Displayable類Display類用于管理屏幕的顯示,該類提供了在移動(dòng)設(shè)備上顯示組件的功效。作用:控制界面顯示獲得與屏幕有關(guān)的某些屬性信息

Display類5.2

Display類和Displayable類聲明:publicstaticDisplaygetDisplay(MIDletm){…}創(chuàng)立Display對(duì)象必須使用Display類的靜態(tài)辦法getDisplay,語句以下:Displaydisplay=Display.getDisplay(this);變化現(xiàn)在屏幕上顯示的內(nèi)容的基本語句格式以下:display.setCurrent(display.getCurrent());

Display類5.2

Display類和Displayable類Displayable類是一種抽象類,是全部能夠單獨(dú)在屏幕上顯示的組件的父類。新創(chuàng)立的Displayable對(duì)象狀態(tài)以下:對(duì)象在屏幕上不可見;對(duì)象沒有有關(guān)聯(lián)的滾動(dòng)條;對(duì)象的標(biāo)題為空;對(duì)象不含按鈕以及有關(guān)聯(lián)的按鈕監(jiān)聽器。

Displayable類5.2

Display類和Displayable類MIDlet只提供一種運(yùn)行平臺(tái),上面的界面需要自己加上去來生成,如能夠?qū)orm添加到MIDlet上。如何添加?能夠?qū)IDlet對(duì)象傳進(jìn)去,相稱于獲得屏幕上的Display對(duì)象加上去來生成,如能夠?qū)orm添加到MIDlet上。什么樣的東西能夠添加?Displayable類的子類

Alert類概述

5.3Alert類Alert類是Screen類的子類,它是用來提示顧客有關(guān)錯(cuò)誤或者其它異常狀況的屏幕對(duì)象。Alert分為永久模式(FOREVER)和定時(shí)模式(DISMISS_COMMAND)兩種。分別使用setTimeout(Alert.FOREVER)和setTimeout(inttime)設(shè)立。Alert的類型由AlertType進(jìn)行指定,AlertType共有5個(gè)類型:ALARM(警報(bào));CONFIRMATION(擬定);ERROR(錯(cuò)誤);INFO(信息提示);WARNING(警告)

Alert類概述

5.3Alert類Alert類慣用辦法(超時(shí))設(shè)立事件監(jiān)聽器設(shè)立Alert類型5.3Alert類

Alert類實(shí)例【例5-1】演示Alert類進(jìn)行信息提示的功效(AlertDemo.java)教師演示解說5.4Command類和CommandListener接口

JavaME中的Command類相稱于JavaSE桌面應(yīng)用程序的菜單項(xiàng),能夠在每一種Displayable對(duì)象中加入Command類的對(duì)象與顧客進(jìn)行交互。默認(rèn)狀況下,Command對(duì)象生成后,不會(huì)自動(dòng)完畢任何的工作,全部有關(guān)的工作均需要顧客自行編碼完畢。在JavaME中需要通過實(shí)現(xiàn)CommandListener接口來完畢。Command類的構(gòu)造辦法以下:Command(Stringlabel,intcommandType,intpriority)Command(StringshortLabel,StringlongLabel,intcommandType,intpriority)Command對(duì)象的參數(shù)含義以下:label、shortLabel、longLabel:Command對(duì)象的名稱;commandType:Command對(duì)象的類型,共有8種;priority:Command對(duì)象的優(yōu)先級(jí),數(shù)值越小,重要性越大。

Command概述

5.4Command類和CommandListener接口

Command慣用辦法按鈕只是提供一種分類,不代表單擊按鈕會(huì)有對(duì)應(yīng)的事件發(fā)生WTK下按鈕優(yōu)先級(jí):ITEMSCREENOKHELPBACKEXITCANCELSTOP5.4Command類和CommandListener接口

Command慣用辦法5.4Command類和CommandListener接口

【例5-2】CommandDemo.java

Command類實(shí)例

教師演示解說5.4Command類和CommandListener接口

JAVA的事件機(jī)制是監(jiān)聽機(jī)制

實(shí)現(xiàn)CommandListener接口對(duì)Command對(duì)象的動(dòng)作進(jìn)行響應(yīng)時(shí),需要實(shí)現(xiàn)該接口中的commandAction辦法Java支持類單重繼承并實(shí)現(xiàn)多個(gè)接口

CommandListener接口

5.4Command類和CommandListener接口

【例5-3】CommandListenerDemo.java

Command類實(shí)例

教師演示解說5.4Command類和CommandListener接口

(1)創(chuàng)立一種包含事件信息的Command對(duì)象。cmdExit=newCommand("退出",Command.EXIT,2);(2)將創(chuàng)立的Command對(duì)象添加到Form之類的容器中。form.addCommand(cmdExit);(3)為了能夠?qū)崿F(xiàn)Command對(duì)象的事件解決,規(guī)定MIDlet實(shí)現(xiàn)CommandListener接口。publicclassCommandListenerDemoextendsMIDletimplementsCommandListener{}(4)根據(jù)Java規(guī)范,實(shí)現(xiàn)CommandListener接口時(shí),規(guī)定實(shí)現(xiàn)其中的全部辦法,這里規(guī)定實(shí)現(xiàn)該接口中的commandAction辦法。在該辦法中,根據(jù)不同的Command對(duì)象進(jìn)行不同的操作。publicvoidcommandAction(Commandcommand,Displayabledisplayable) {}(5)在Form等容器中為Command對(duì)象建立事件監(jiān)聽器。form.setCommandListener(this);(6)對(duì)應(yīng)按鈕的事件發(fā)生后,事件監(jiān)聽器自動(dòng)負(fù)責(zé)解決。JavaME中Command事件解決【任務(wù)1】編寫應(yīng)用Alert類實(shí)現(xiàn)提示“電量局限性,手機(jī)將自動(dòng)關(guān)閉”信息的MIDlet程序。【任務(wù)2】編寫應(yīng)用兩個(gè)Command對(duì)象(“歡迎”和“退出”)的MIDlet程序,通過實(shí)現(xiàn)CommandListener接口實(shí)現(xiàn)按鈕的事件解決:選擇“歡迎”后,通過Alert顯示歡迎信息;選擇“退出”,退出現(xiàn)在應(yīng)用程序。課堂實(shí)踐課堂實(shí)踐5-15.5

Form類Form是JavaME里面一種比較重要的容器類,F(xiàn)orm類集中了高級(jí)UI中的精髓,是開發(fā)當(dāng)中經(jīng)慣用到的一種核心類,在Form類中能夠容納Item對(duì)象以及其它組件,以協(xié)助顧客創(chuàng)立自己所需要的界面。

Form類概述

5.5

Form類Form類慣用辦法5.5

Form類在Form畫面中,通過Item.LAYOUT_LEFT、Item.LAYOUT_CENTER、Item.LAYOUT_RIGHT來控制各個(gè)Item在Form的位置(左、中、右)默認(rèn)狀況為LAYOUT_DEFAULT用setLayout()辦法設(shè)立布局方式Form缺省的設(shè)定會(huì)在空間足夠的狀況下,盡量讓Item出現(xiàn)在同一種邏輯區(qū)域中。反之,系統(tǒng)會(huì)自動(dòng)調(diào)用setPreferredSize辦法將預(yù)期尺寸設(shè)立好。5.5

Form類【例5-4】演示運(yùn)用Form來進(jìn)行信息的顯示的功效(FormDemo.java)

Form類實(shí)例

教師演示解說5.5

Form類【例5-4】程序運(yùn)行成果教師演示解說5.6

Item有關(guān)類Item類是一種抽象類,是全部能夠添加到Form對(duì)象的類的父類。全部的Item對(duì)象都有一種標(biāo)簽屬性。當(dāng)Item對(duì)象被顯示在屏幕上時(shí),該標(biāo)簽會(huì)顯示在Item對(duì)象的所在的行或Item對(duì)象之上,設(shè)備使用標(biāo)簽文字與其它的文本內(nèi)容進(jìn)行分辨。創(chuàng)立一種Item對(duì)象后,其默認(rèn)的狀態(tài)為:該Item對(duì)象沒有被包含在任何容器中;該Item對(duì)象中沒有Command顯示;該Item對(duì)象默認(rèn)的Command為null;該Item對(duì)象的CommandListener為null;該Item對(duì)象的缺省布局為LAYOUT_DEFAULT;該Item對(duì)象的首選寬度和首選高度沒有被鎖定。

Item類概述

5.6

Item有關(guān)類Item類慣用辦法5.6

Item有關(guān)類StringItem類是繼承于Item的子類,重要功效是在在屏幕上顯示一串字符,顯示在StringItem中的內(nèi)容是只讀的,顧客不能編輯它的內(nèi)容,但是在程序中能夠通過StringItem提供的辦法對(duì)它的內(nèi)容進(jìn)行修改。

StringItem類概述

5.6

Item有關(guān)類ImageItem類也是Item的子類,ImageItem和StringItem其實(shí)區(qū)別僅僅在于ImageItem用于顯示圖像,StringItem用于顯示文字。MIDP提供了ImageItem類以控制圖像的位置。ImageItem類的最普通的使用方法就是在把Image對(duì)象添加到Form或Alert時(shí),對(duì)圖像位置進(jìn)行控制和布局。

ImageItem類概述

5.6

Item有關(guān)類程序演示

教師演示解說【例5-5】應(yīng)用StringItem對(duì)象顯示文本,應(yīng)用ImageItem對(duì)象顯示圖像(ItemDemo.java)5.6

Item有關(guān)類Item對(duì)象也能夠添加Command對(duì)象,因此,MIDP中提供了ItemCommandListener接口對(duì)其中的Command進(jìn)行解決。ItemListener接口

5.6

Item有關(guān)類(1)創(chuàng)立一種包含事件信息的Command對(duì)象。cmdDetail=newCommand("詳情",Command.ITEM,1);(2)將創(chuàng)立的Command對(duì)象添加到Item中。itmAbout.addCommand(cmdDetail);(3)為了能夠?qū)崿F(xiàn)Command對(duì)象的事件解決,規(guī)定MIDlet實(shí)現(xiàn)ItemCommandListener接口。publicclassItemDemoextendsMIDletimplementsItemCommandListener{}(4)根據(jù)Java規(guī)范,實(shí)現(xiàn)ItemCommandListener接口時(shí),規(guī)定實(shí)現(xiàn)其中的全部辦法,這里規(guī)定實(shí)現(xiàn)該接口中的commandAction辦法。在該辦法中,根據(jù)不同的Command對(duì)象進(jìn)行不同的操作。publicvoidcommandAction(Commandcmd,Itemitm) {}(5)在Item中為Command對(duì)象建立事件監(jiān)聽器。itmAbout.setItemCommandListener(this);(6)在Item對(duì)象上的事件發(fā)生后,Item事件監(jiān)聽器自動(dòng)進(jìn)行解決。ItemListener接口使用

【任務(wù)1】編寫程序,在Form對(duì)象中添加三個(gè)按鈕對(duì)象:“有關(guān)”、“詳情”和“退出”,并對(duì)三個(gè)按鈕的事件進(jìn)行監(jiān)聽:選擇“有關(guān)”時(shí),顯示MIDlet程序的作者信息;選擇“詳情”時(shí),查看MIDlet程序的功效的具體信息;選擇“退出”時(shí),退出程序。?!救蝿?wù)2】編寫程序,在Form對(duì)象上通過兩個(gè)StringItem對(duì)象顯示兩行文字,通過一種ImageItem對(duì)象顯示一幅圖像。并為ImageItem添加一種應(yīng)用Command,并通過實(shí)現(xiàn)ItemCommandListener接口響應(yīng)Item事件。課堂實(shí)踐課堂實(shí)踐5-25.7

Choice接口及有關(guān)類Choice接口為用于選擇的顧客界面組件提供了一組API,實(shí)現(xiàn)Choice接口的有List類和ChoiceGroup類。Choice接口中定義了4個(gè)整型靜態(tài)組員變量以表達(dá)4種不同類型的選項(xiàng);同時(shí),在選項(xiàng)內(nèi)容文字過長的狀況下,定義了3種不同的顯示辦法。

Choice接口

5.7

Choice接口及有關(guān)類List類實(shí)現(xiàn)了Choice接口,用于顯示一系列組件供顧客選擇。它一共有三種具體的類型:implicit、exclusive和multipl。以下圖所示。

List類概述

5.7

Choice接口及有關(guān)類List類慣用辦法5.7

Choice接口及有關(guān)類程序演示

【例5-6】演示三種不同模式的List的應(yīng)用(ListDemo.java)

5.7

Choice接口及有關(guān)類ChoiceGroup類是Item類的子類,它也實(shí)現(xiàn)了Choice接口,是Form對(duì)象的可選元素。ChoiceGroup類的辦法和屬性與List類基本相似。兩者的區(qū)別重要體現(xiàn)在:ChoiceGroup類只有EXCLUSIVE和MULTIPLE兩種模式,而List類還涉及IMPLICIT模式;List類為Screen類的子類,因此List能夠單獨(dú)被添加到Display對(duì)象上,而ChoiceGroup必須先放置在Form對(duì)象上,再添加到Display對(duì)象上;List在創(chuàng)立時(shí)將所需要的元素進(jìn)行了初始化,后來不能動(dòng)態(tài)地添加元素;而ChoiceGroup能夠根據(jù)需要通過append辦法動(dòng)態(tài)添加元素。如果使用display.setCurrent直接指定對(duì)象到Display對(duì)象中,建議使用List、TextBox等,但如果是使用append辦法添加到Form中,建議使用ChoiceGroup和TextField等。如果是需要在同一種屏幕上顯示多個(gè)“列表”,建議使用Form和ChoiceGroup的組合。

ChoiceGroup類

5.7

Choice接口及有關(guān)類ItemStateListener接口用于解決Item組件內(nèi)部狀態(tài)的變化事件,實(shí)現(xiàn)ItemStateListener接口必須實(shí)現(xiàn)其中的itemStateChanged辦法。Item組件內(nèi)部狀態(tài)的變化是指下列狀況:ChoiceGroup中所選擇的值發(fā)生變化;交互式的Gauge的值發(fā)生變化;輸入或變化TextField中的值;在DateField中輸入新的時(shí)間或日期值;Item類的notifyStateChanged()辦法被Item對(duì)象調(diào)用。

ItemListener接口

5.7

Choice接口及有關(guān)類(1)創(chuàng)立一種包含事件信息的Item對(duì)象(如:ChoiceGroup)。cgFilm=newChoiceGroup("您最喜歡的電影:",Choice.EXCLUSIVE);cgFilm.append("天下兄弟",null);(2)將創(chuàng)立的Item對(duì)象添加到Form中。form.append(cgFilm);(3)為了能夠?qū)崿F(xiàn)ItemState對(duì)象的事件解決,規(guī)定MIDlet實(shí)現(xiàn)ItemStateListener接口。publicclassChoiceGroupDemoextendsMIDletimplementsCommandListener,ItemStateListener{}(4)根據(jù)Java規(guī)范,實(shí)現(xiàn)ItemStateListener接口時(shí),規(guī)定實(shí)現(xiàn)其中的全部辦法,這里規(guī)定實(shí)現(xiàn)該接口中的commandAction辦法。在該辦法中,根據(jù)Item中選項(xiàng)的變化進(jìn)行不同的操作。publicvoiditemStateChanged(Itemitem) {}(5)在Form中為Item對(duì)象建立事件監(jiān)聽器。form.setItemStateListener(this);(6)Item對(duì)象的內(nèi)部狀態(tài)發(fā)生變化時(shí),ItemState事件監(jiān)聽器自動(dòng)進(jìn)行解決。

ItemListener接口使用

5.8

TextBox類和TextField類TextBox類是一種用于顯示和輸入文本的組件。該類是Screen類的子類,與Alert、List和Form相似,TextBox類使用的是一種獨(dú)立的文本編輯屏幕,能夠直接放置在Display對(duì)象中。

TextBox類

5.8

TextBox類和TextField類程序演示

教師演示解說【例5-8】應(yīng)用TextBox輸入并顯示指定約束的信息(TextBoxDemo.java)

5.8

TextBox類和TextField類TextField類是Item的一種子類,與TextBox能夠直接放置在Display對(duì)象上不同,它是一種放置在Form對(duì)象中的可編輯的文本組件。TextField類和TextBox類的屬性和辦法大同小異。

TextField類

教師演示解說【例5-9】演示TextField組件的使用方法(TextFieldDemo.java)【任務(wù)1】編寫程序,使用List顯示顧客訂閱的新聞列表(體育、財(cái)經(jīng)、時(shí)事等),選擇特定的新聞?lì)愋秃?,打開該類型的新聞信息?!救蝿?wù)2】在【任務(wù)1】的基礎(chǔ)上,顧客查看新聞后輸入自己的評(píng)論和自己的聯(lián)系方式(使用TextBox或TextField實(shí)現(xiàn)),以反饋到新聞網(wǎng)站(模擬實(shí)現(xiàn))。課堂實(shí)踐課堂實(shí)踐5-35.9

DateField類DateField類也是Item的子類,它是一種放置在Form對(duì)象中用來顯示時(shí)間和日期的可編輯組件。當(dāng)編輯DateField對(duì)象中的時(shí)間和日期時(shí),會(huì)觸發(fā)ItemStateListener事件。DateField對(duì)象有以下三種顯示模式:DATE(日期)模式;TIME(時(shí)間)模式;DATE_TIME(日期-時(shí)間)模式。

DateField類

5.9

DateField類程序演示

教師演示解說

【例5-10】演示應(yīng)用DateField類進(jìn)行日期和時(shí)間設(shè)立和顯示(DateFieldDemo.java)5.10

Ticker類Ticker對(duì)象類似于跑馬燈,每一種Displayable對(duì)象都能夠有一種Ticker對(duì)象。借助于Ticker對(duì)象能夠在Displayable對(duì)象的上部循環(huán)顯示一種字符串。在構(gòu)造Ticker對(duì)象時(shí)只需要提供一種String類型的參數(shù)。Tic

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論