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

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

Java SE 6中的AWT模態(tài)增強(qiáng)功能

2019-11-18 11:35:13
字體:
供稿:網(wǎng)友
一、 引言

  模態(tài)一直是我最喜歡的話題之一,至少因?yàn)橐恢贝嬖诖罅康母袗酆玫目蛻舻挠嘘P(guān)于這方面內(nèi)容的回饋信息。作為一個(gè)java SE測試工程師,這正是驅(qū)動(dòng)我工作的動(dòng)力-它使我一直處于忙碌之中,而且還為我的工作帶來快樂。另一方面,這也說明了模態(tài)是客戶端最廣為使用的特征之一,不管是使用Swing還是使用AWT進(jìn)行開發(fā)。

  在Java SE 6(代碼名為Mustang)中,我的工作變得更有意思——在模態(tài)方面進(jìn)行大量的改進(jìn)。這些改進(jìn)將為應(yīng)用程序開發(fā)者提供更大的靈活性——在設(shè)計(jì)可能用到模態(tài)對(duì)話框行為的程序的過程中。在深入討論這些改進(jìn)之前,讓我們首先看一下在Mustang之前的AWT所提供的功能。

  從其有關(guān)介紹來看,AWT僅提供了兩種類型的模態(tài):模態(tài)和非模態(tài)的。

  ·模態(tài)-顯示任何一個(gè)模態(tài)窗口時(shí),應(yīng)用程序中的所有窗口都將被阻斷。

  ·非模態(tài)的-這是一種不能阻斷任何窗口的對(duì)話框。

  我們可能會(huì)提出下列一些有趣的問題:

  ·為什么一個(gè)模態(tài)對(duì)話框應(yīng)該阻斷當(dāng)前應(yīng)用程序中的所有的窗口?

  ·假如模態(tài)對(duì)話框僅阻斷父窗口而不是其它窗口,不好嗎?

  ·由應(yīng)用程序開發(fā)者來決定(代替AWT)在他的應(yīng)用程序的對(duì)話框應(yīng)該阻斷什么窗口,不好嗎?比方說,當(dāng)一個(gè)模態(tài)對(duì)話框處于活動(dòng)狀態(tài)時(shí),假如一個(gè)應(yīng)用程序用戶想要滾動(dòng)幫助窗口來看一下他/她在對(duì)話框中作了怎樣的選擇,他/她該如何實(shí)現(xiàn)這一點(diǎn)呢?

  AWT在新的Java SE 6中加強(qiáng)了這一方面的功能?,F(xiàn)在,它提供了四種類型的模態(tài)(應(yīng)用范圍由寬到窄):工具箱,應(yīng)用程序,文檔和非模態(tài)的。開發(fā)者可以視具體需要為他的對(duì)話框選擇適當(dāng)?shù)哪B(tài)類型。

  二、 工具箱模態(tài)

  選擇這種類型,假如:

  ·你的對(duì)話框必須阻斷你的應(yīng)用程序中的所有窗口(除了該對(duì)話框的子層次窗口之外)

  ·你的對(duì)話框應(yīng)該阻斷你的applet及同一個(gè)工具箱中所有其它applet

  ·你的對(duì)話框應(yīng)該阻斷瀏覽器本身

  ·你想使用一個(gè)具有最大阻斷范圍的對(duì)話框

  三、 應(yīng)用程序模態(tài)

  就通常應(yīng)用程序來說,在應(yīng)用程序和工具箱模態(tài)之間并不存在很多區(qū)別。但是,假如你正在開發(fā)一個(gè)applet,那么搞清其區(qū)別是十分重要的。

  ·假如在瀏覽器中啟動(dòng)若干applet,那么,根據(jù)你使用的是什么瀏覽器(檢查你的瀏覽器文檔),它們可以被當(dāng)作單獨(dú)的應(yīng)用程序或單個(gè)的應(yīng)用程序。應(yīng)用程序模態(tài)對(duì)話框?qū)⒆钄嗤粋€(gè)"應(yīng)用程序"中的所有的窗口

  ·默認(rèn)的模態(tài)類型,未給模態(tài)對(duì)話框指定任何內(nèi)容時(shí)使用。

  四、 文檔模態(tài)

  選擇這種類型,假如:

  ·對(duì)話框只阻斷同一個(gè)文檔中的窗口("文檔"由最接近頂部的沒有所有者的窗口決定)

  ·對(duì)話框應(yīng)該具有鄰近非模態(tài)的窗口的最小范圍的阻斷。

  五、 非模態(tài)型

  假如你不想要你的對(duì)話框阻斷任何窗口,那么你可以使用這種模態(tài)。

  注重 既然工具箱模態(tài)對(duì)話框能夠阻斷瀏覽器/Java WebStart,那么你需要一個(gè)AWTPermission "toolkitModality"以便從一個(gè)applet中使用這種類型的模態(tài)。

  總的而言,在選擇每一個(gè)對(duì)話框的適當(dāng)模態(tài)類型(根據(jù)它應(yīng)該阻斷應(yīng)用程序中的其它頂級(jí)窗口的指定范圍)時(shí),這為應(yīng)用程序開發(fā)者提供大量的靈活性。 photoshop教程 數(shù)據(jù)結(jié)構(gòu) 五筆輸入法專題 QQ病毒專題 共享上網(wǎng)專題 Google工具和服務(wù)專題
  六、 模態(tài)排除

  還有另外一種場所-在你的應(yīng)用程序中存在許多窗口,并且你想要你的模態(tài)對(duì)話框阻斷除了一個(gè)窗口之外的所有其它窗口。在這樣情況下,你將必須選擇模態(tài)類型-它具有最大范圍的阻斷能力。但是,從被對(duì)話框阻斷的窗口中排除這些不應(yīng)該被阻斷的窗口,有可能嗎?是的,完全可以!

  下面,讓我們看一下AWT在這一方面所提供的功能:

  在Java SE 6中,AWT又引入了兩種模態(tài)排除類型(參考圖1)。

  (一) 阻斷工具箱模態(tài)對(duì)話框排除型

  假如一個(gè)窗口是工具箱模態(tài)排除的,那么它就不會(huì)被任何應(yīng)用程序或工具箱模態(tài)對(duì)話框所阻斷。另外,它也不會(huì)被文檔模態(tài)對(duì)話框從其它的子層次窗口(注重:假如你使用的是一種applet環(huán)境,那么你會(huì)要求AWTPermission-"toolkitModality"使用這種排除類型)外所阻斷。


  (二) 阻斷應(yīng)用程序模態(tài)對(duì)話框排除型

  假如一個(gè)窗口是一個(gè)應(yīng)用程序模態(tài)排除的,那么它就不會(huì)被任何應(yīng)用程序模態(tài)對(duì)話框所阻斷。另外,它也不會(huì)被文檔模態(tài)對(duì)話框從其子層次窗口外面所阻斷。



發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 珲春市| 蓬莱市| 沁阳市| 塔河县| 黄陵县| 阜阳市| 天柱县| 陇西县| 山东省| 苗栗县| 平远县| 蓬莱市| 边坝县| 讷河市| 同仁县| 禹城市| 望城县| 周宁县| 堆龙德庆县| 施秉县| 贞丰县| 马公市| 青龙| 北流市| 普宁市| 禄劝| 陵水| 贵南县| 曲水县| 佛冈县| 军事| 朔州市| 沈丘县| 大埔县| 镇宁| 静安区| 碌曲县| 临夏县| 大丰市| 黔东| 许昌市|