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

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

向 MIDP2.0 窗體加入自定義項(xiàng)目

2019-11-18 14:50:18
字體:
供稿:網(wǎng)友

   移動(dòng)信息設(shè)備描述(Mobile Information Device PRofile,MIDP) 1.0 版本提供了一套基本組件,用于支持應(yīng)用程序需要的大多數(shù)用戶界面(UI)。但是,假如您的需求比較復(fù)雜,那么一般必須要從 Canvas 派生子類,并重新設(shè)計(jì)。

   MIDP 2.0 改變了所有這些?,F(xiàn)在您可以建立自定義組件,這樣您就可以對用戶交互進(jìn)行細(xì)粒度的控制,而且可以適應(yīng)現(xiàn)有的窗體框架,符合設(shè)備本身的觀感。

    在這篇文章里,我們通過建立一個(gè)簡單的 Outliner MIDlet,來研究這些新的定制功能。大綱是用來組織想法、保持列表,甚至進(jìn)行項(xiàng)目計(jì)劃的工具——是一個(gè)在移動(dòng)設(shè)備上非常有用的應(yīng)用程序。Outliner MIDlet讓用戶可以構(gòu)建層次結(jié)構(gòu)良好的窗體項(xiàng)目大綱。它們可以加入或刪除,縮進(jìn)或凸出,還可以用一種在 MIDP 2.0 出現(xiàn)之前不可能的方法折疊和展開項(xiàng)目。

窗體:回顧

假如您對于使用 MIDP 建立用戶界面不熟,請讓我們回顧一下基礎(chǔ)知識(shí)。

   MIDP 1.0 提供了一些骨干 UI 組件,包括選項(xiàng)組(ChoiceGroup),日期字段(DateField), Gauge, 圖像項(xiàng)目(ImageItem), 字符串項(xiàng)目(StringItem), 以及文本字段(TextField)。這些類全部擴(kuò)展自公共基類 Item。和它們的 AWT 等價(jià)物非常相似,項(xiàng)目是我們用來控制底層本機(jī) UI 小部件的抽象。因?yàn)楸緳C(jī)實(shí)現(xiàn)在不同設(shè)備之間,可能有很大的差異,而事實(shí)上也是這樣,所以 Item 公共接口對于底層小部件的外觀和行為只提供了非常少的控制。

向 MIDP2.0 窗體加入自定義項(xiàng)目

    窗體的存在,是為了按行排列項(xiàng)目,使其最好地適合屏幕尺寸、適應(yīng)項(xiàng)目運(yùn)行所在設(shè)備的能力。至少從理論上講,MIDP 實(shí)現(xiàn)可以方便、無縫地使您的應(yīng)用程序適應(yīng)設(shè)備硬件;副作用是您對用戶界面觀感的影響受到限制。

 
 
-->
有什么新東西?

MIDP 2.0 改善了窗體,為項(xiàng)目布局提供了更好的控制,還提供了一個(gè)新類 CustomItem,這個(gè)類讓您可以建立自己的窗體項(xiàng)目。Outliner 利用全部這些能力,為用戶提供以下特性:

  • 應(yīng)用程序顯示多行文本,用不同的數(shù)量縮進(jìn),形成一個(gè)可視的層次結(jié)構(gòu)。窗體增強(qiáng)的布局能力使這種表示成為可能。
  • 用戶可以折疊大綱的任何一行,把層次結(jié)構(gòu)中該行之下的行隱藏起來。會(huì)有一個(gè)可視指示器,表示指定行是展開的還是折疊的。您可以覆蓋 CustomItem paint() 方法,按照自己喜歡的方式畫出這樣的指示器。
  • 用戶還可以按照任意順序重新排列行。移動(dòng)一個(gè)行,也會(huì)同時(shí)移動(dòng)它所有的下級行。現(xiàn)在,這個(gè)命令可以專門用于一個(gè)項(xiàng)目,這樣菜單就能夠做到上下文敏感。向上移動(dòng)、向下移動(dòng)、展開、以及折疊命令只有在適合項(xiàng)目當(dāng)前狀態(tài)的時(shí)候才會(huì)出現(xiàn)。

這些特性在 MIDP 1.0 里都是不可能的。下面讓我們看看這種魔術(shù)是如何做到的。

 
 
-->
建立 Outline 項(xiàng)目類

Outliner 類自己就是一個(gè)普通的 MIDlet。功能的核心是 CustomItem 的子類,叫做 OutlineItem。你要實(shí)現(xiàn)自己的 CustomItem 類時(shí)需要做的事,在這個(gè)類里都做了,所以您應(yīng)當(dāng)好好在源代碼里看看它。構(gòu)造函數(shù)是一個(gè)開始的好地方:

/*** 用指定的初始縮進(jìn)和文本建立  OutlineItem*/public OutlineItem( int inIndent, String inText ){    // 我們不想要系統(tǒng)提供的標(biāo)簽
    super( null );    indent = inIndent;    text = inText;    hiddenChildren = null;    // 定義布局    setLayout( LAYOUT_EXPAND  LAYOUT_TOP  LAYOUT_NEWLINE_AFTER );    // 加入一直適用的命令    addCommand( editCommand );    addCommand( insertCommand );}            
 


 

調(diào)用構(gòu)造函數(shù),把要顯示的文本、項(xiàng)目應(yīng)當(dāng)縮進(jìn)的次數(shù)傳遞給構(gòu)造函數(shù),就可以建立 OutlineItem。

    在構(gòu)造函數(shù)里,第一項(xiàng)任務(wù)是調(diào)用超類的構(gòu)造函數(shù)。MIDP 項(xiàng)目不僅僅代表 UI 小部件本身,還有一個(gè)標(biāo)簽向用戶標(biāo)識(shí)部件。例如,一個(gè)文本字段是一個(gè)包含文本的框;它的標(biāo)簽通常出現(xiàn)在它的左邊,是描述文本框中內(nèi)容的單詞,比如 Name PassWord。大綱項(xiàng)不需要標(biāo)簽,所以我們的構(gòu)造函數(shù)把 null 作為必要參數(shù)傳給超類的構(gòu)造函數(shù)。



發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 涟源市| 漳平市| 邯郸市| 中西区| 林周县| 额尔古纳市| 勐海县| 云龙县| 当阳市| 乌鲁木齐市| 休宁县| 敦煌市| 湾仔区| 贵定县| 电白县| 内乡县| 阆中市| 乐清市| 昭觉县| 隆林| 姚安县| 临海市| 合水县| 东丰县| 霍山县| 凤凰县| 定南县| 乌拉特前旗| 孝感市| 十堰市| 安陆市| 郧西县| 基隆市| 女性| 永安市| 襄垣县| 衡阳县| 四川省| 普兰县| 葵青区| 霍州市|