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

J2ME對話框選擇功能實現原理

開發 前端
本文利用J2ME實現了一個阻塞當前線程的對話框,簡要地說,你可以運用諸如win32API中dialog函數那樣的方式來實現對話框并阻塞等待返回值,然后根據返回值執行不同的處理。

這里向大家描述一下J2ME如何實現對話框選擇功能,在手機這么小的屏幕上開發使用,難點之一就是頻繁的屏幕切換。盡管midp2.0的UI部分已經很豐富了,但這些UI部件都是基于事件回調的。

J2ME實現對話框選擇功能

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

本文實現了一個阻塞當前線程的對話框,簡要地說,你可以運用諸如win32API中dialog函數那樣的方式來實現對話框并阻塞等待返回值,然后根據返回值執行不同的處理。

疑問何在?

首先回顧一下midpUI的事件處理機制。有兩個要素:

1)首先UI部分由系統的一個線程負責維護。也就是說不能阻塞系統的事件處理要領。

2)事件處理運用的是一種回調機制。首先UI部件運用諸如setCommandListener之類的要領為自己注冊一個回調接口(其中的回調要領由用戶實現);等到觸發了相應事件就調用這個注冊好的接口的回調要領。

以下是一個實現了CommandListener的類的代碼片斷: 

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

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

較好的做法

這時候我們不免懷念一下win32Api中對話框函數的處理方式: 

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

這樣處理將會阻塞當前線程,等待返回值,然后根據返回值執行處理。這樣做很cool的原由就是在一個邏輯性很完整的任務中,你可以一次性在一個回調要領中完成所有邏輯,而不必為了問詢基本的YES/NO疑問而在不同的類中間跳來跳去。

如何在MIDP下實現

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

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

下面看一下主要思路


【編輯推薦】

  1. 深入探究J2ME Hashtable實現原理
  2. J2ME中Font和Color的設置
  3. J2ME數據結構中Hashtable和Vector的使用
  4. MotorolaJ2ME開發時需要注意的幾個細節
  5. Java2平臺J2SE、J2EE、J2ME三大版本的區別

 

責任編輯:佚名 來源: javaeye.com
相關推薦

2010-10-09 14:54:42

J2ME對話框

2010-09-29 14:54:34

J2MEHashtable

2010-09-29 08:57:04

J2ME前景

2010-09-29 09:19:39

J2ME開發工具

2009-07-07 11:10:01

JSP實現通信

2010-09-30 13:28:55

J2ME圖形

2009-06-23 11:30:16

RMSJ2ME

2009-03-22 09:38:03

Android移植J2ME

2010-09-30 09:56:26

J2ME Polish

2009-06-08 21:34:09

J2EEJ2SEJ2ME

2010-09-29 13:50:31

J2MEJ2SE

2010-02-04 13:15:59

Android J2M

2009-05-26 17:35:40

J2ME軟件簽名證書

2011-09-01 16:45:15

J2MELua

2010-09-29 09:13:48

J2ME開發環境

2010-09-29 12:45:50

J2ME

2010-09-30 11:04:53

J2MERMS

2009-07-09 16:06:10

JDK J2EE J2

2010-09-28 16:05:36

J2ME技術J2MEWTK

2010-09-29 10:41:18

J2MEJVM
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 天堂一区 | 亚洲精品乱码久久久久久按摩观 | 国产视频福利 | 99久久中文字幕三级久久日本 | 在线播放中文 | 欧美亚洲在线 | 午夜精品一区二区三区免费视频 | 人人操日日干 | 午夜精品久久久久99蜜 | 久草中文在线 | 日韩欧美在线视频 | 国产一区999 | 欧美日韩亚洲国产 | www久久久| 国产欧美精品一区二区三区 | 日本一区二区三区四区 | 999re5这里只有精品 | 国产一区二区三区在线视频 | avmans最新导航地址 | 国产成人99久久亚洲综合精品 | 亚洲精品成人在线 | 日韩精品一二三 | 久久专区 | 在线观看日韩 | 无码国模国产在线观看 | 亚洲天堂999 | 久久精品高清视频 | 天堂网中文 | 日日干综合 | 欧美日韩久久久 | 亚洲欧美日韩精品久久亚洲区 | 一级欧美 | 久久国产区 | 亚洲精品乱码久久久久久蜜桃 | 国产精品视频一区二区三区四蜜臂 | 亚洲性人人天天夜夜摸 | 欧美日韩视频在线播放 | 99久久国产综合精品麻豆 | 96久久久久久 | 拍真实国产伦偷精品 | 久久综合一区 |