成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

解析J2ME對(duì)話框選擇功能的實(shí)現(xiàn)

開發(fā) 前端
你知道J2ME如何實(shí)現(xiàn)對(duì)話框選擇功能的嗎,這里和大家分享一下,簡(jiǎn)要地說,你可以運(yùn)用諸如win32API中dialog函數(shù)那樣的方式來實(shí)現(xiàn)對(duì)話框并阻塞等待返回值,然后根據(jù)返回值執(zhí)行不同的處理。

本文向大家簡(jiǎn)單介紹一下J2ME如何實(shí)現(xiàn)對(duì)話框選擇功能,你可以運(yùn)用諸如win32API中dialog函數(shù)那樣的方式來實(shí)現(xiàn)對(duì)話框并阻塞等待返回值,然后根據(jù)返回值執(zhí)行不同的處理,相信本文介紹一定會(huì)讓你有所收獲。

J2ME實(shí)現(xiàn)對(duì)話框選擇功能

在手機(jī)這么小的屏幕上開發(fā)使用,難點(diǎn)之一就是頻繁的屏幕切換。盡管midp2.0的UI部分已經(jīng)很豐富了,但這些UI部件都是基于事件回調(diào)的。這在處理大量的、基本的問答式交互時(shí)顯得力不從心。

本文實(shí)現(xiàn)了一個(gè)阻塞當(dāng)前線程的對(duì)話框,簡(jiǎn)要地說,你可以運(yùn)用諸如win32API中dialog函數(shù)那樣的方式來實(shí)現(xiàn)對(duì)話框并阻塞等待返回值,然后根據(jù)返回值執(zhí)行不同的處理。

疑問何在?

首先回顧一下midpUI的事件處理機(jī)制。有兩個(gè)要素:

1)首先UI部分由系統(tǒng)的一個(gè)線程負(fù)責(zé)維護(hù)。也就是說不能阻塞系統(tǒng)的事件處理要領(lǐng)。

2)事件處理運(yùn)用的是一種回調(diào)機(jī)制。首先UI部件運(yùn)用諸如setCommandListener之類的要領(lǐng)為自己注冊(cè)一個(gè)回調(diào)接口(其中的回調(diào)要領(lǐng)由用戶實(shí)現(xiàn));等到觸發(fā)了相應(yīng)事件就調(diào)用這個(gè)注冊(cè)好的接口的回調(diào)要領(lǐng)。

以下是一個(gè)實(shí)現(xiàn)了CommandListener的類的代碼片斷: 

  1. Formf=newForm("Helloworld");  
  2. f.addCommand(exit);  
  3. f.setCommandListener(this); 

可以想象基于事件回調(diào)的處理方式,在處理大量的、基本的問答式交互時(shí)顯得力不從心。你不得不為每一個(gè)僅僅是詢問要不要繼續(xù)的對(duì)話框而實(shí)現(xiàn)一個(gè)又一個(gè)類,或者處理一個(gè)復(fù)雜的回調(diào)函數(shù)。如果選擇后者,那么在一個(gè)又一個(gè)的if-else中處理不同邏輯事件的代碼片斷一定會(huì)煩死你。

較好的做法

這時(shí)候我們不免懷念一下win32Api中對(duì)話框函數(shù)的處理方式: 

  1. intchoose=Dialog(title,type……);  
  2. if(choose==OK){……}  
  3. elseif(choose==Cancel){……} 

這樣處理將會(huì)阻塞當(dāng)前線程,等待返回值,然后根據(jù)返回值執(zhí)行處理。這樣做很cool的原由就是在一個(gè)邏輯性很完整的任務(wù)中,你可以一次性在一個(gè)回調(diào)要領(lǐng)中完成所有邏輯,而不必為了問詢基本的YES/NO疑問而在不同的類中間跳來跳去。

如何在MIDP下實(shí)現(xiàn)

我們遇到的***個(gè)疑問來自于我們的要領(lǐng)必須要阻塞當(dāng)前線程等待返回值。也就是說,這個(gè)對(duì)話框不能在UI的回調(diào)中直接運(yùn)行,比如commandAction中。處理辦法是將所有的事件處理都放到一個(gè)線程類中處理。(這是一點(diǎn)額外的負(fù)擔(dān),但不可防止)。還好這個(gè)工作量不大,要想實(shí)現(xiàn)兩個(gè)對(duì)象之間的通信也不難。

第二個(gè)疑問是如何阻塞當(dāng)前的線程,我們祭出Java線程的三板斧之wait()/notifyAll()。我們可以指定一個(gè)信號(hào)量(初值false),當(dāng)其為false時(shí)阻塞當(dāng)前線程,在得到用戶通知后將信號(hào)量改為true,并喚醒線程。

【編輯推薦】

  1. Javascript解決瀏覽器兼容問題12個(gè)技巧
  2. 基于J2ME圖形技術(shù)特效
  3. J2ME手機(jī)游戲引擎程序架構(gòu)
  4. 技術(shù)分享 如何識(shí)別控制DHTML和JS中的頁(yè)面元素
  5. 深入學(xué)習(xí)JavaScript中Function對(duì)象語(yǔ)法 


 

責(zé)任編輯:佚名 來源: javaeye.com
相關(guān)推薦

2010-09-29 15:56:02

J2ME對(duì)話框

2010-09-29 08:57:04

J2ME前景

2010-09-30 12:53:00

J2MECSS

2010-09-29 13:50:31

J2MEJ2SE

2010-09-29 12:45:50

J2ME

2010-09-29 10:15:35

JDKJ2EEJ2SE

2010-09-29 14:54:34

J2MEHashtable

2010-09-29 15:35:04

Item類J2ME

2010-10-09 14:29:44

J2MEfontcolor

2010-09-29 09:59:22

J2ME配置

2010-09-30 09:56:26

J2ME Polish

2010-09-29 09:19:39

J2ME開發(fā)工具

2010-09-30 10:40:58

J2MEJSON

2009-07-07 11:10:01

JSP實(shí)現(xiàn)通信

2010-09-29 10:41:18

J2MEJVM

2010-09-29 16:20:06

J2MEWeb服務(wù)API

2010-09-30 13:28:55

J2ME圖形

2009-03-22 09:38:03

Android移植J2ME

2009-06-23 11:30:16

RMSJ2ME

2009-06-08 21:34:09

J2EEJ2SEJ2ME
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 久久夜视频 | 国产精品国产精品国产专区不卡 | 亚洲大片一区 | 欧美白人做受xxxx视频 | 99这里只有精品视频 | 亚洲一二三在线观看 | 青青草久久 | 久久久成人动漫 | 少妇午夜一级艳片欧美精品 | 日韩中文字幕一区二区三区 | 一区二区三区国产好 | 91精品国产一区二区三区动漫 | 青青久在线视频 | 日本精品久久久久 | 久久69精品久久久久久国产越南 | 涩涩视频在线观看免费 | 色综合一区二区三区 | 免费骚视频 | 精品色| 国产视频在线一区二区 | 日本国产一区二区 | 91pao对白在线播放 | 久久精品国产一区二区电影 | 久久精品二区 | 亚洲电影免费 | 免费一二区 | 亚洲综合三区 | 户外露出一区二区三区 | 又爽又黄axxx片免费观看 | 日本精品一区 | 精品久久久久久久久久久 | 久久中文字幕一区 | 亚洲国产一区二区视频 | 国产精品日韩欧美一区二区三区 | 天天操天天插 | yiren22综合网成人 | 亚洲性人人天天夜夜摸 | 国产中文区二幕区2012 | 天天想天天干 | 亚洲人在线 | 狠狠艹 |