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

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

用狀態(tài)欄提示改善JavaGUI

2019-11-18 13:11:34
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

  一個(gè)應(yīng)用程序有多復(fù)雜都無(wú)關(guān)緊要,用戶(hù)并需要去閱讀你的文檔,他們?cè)囍约航鉀Q怎樣去完成給定的任務(wù)。當(dāng)其它所有的事都以失敗告終時(shí),他們更傾向于去問(wèn)別的人而不是閱讀文檔。
  
  因此,作為軟件開(kāi)發(fā)者,使我們的應(yīng)用程序盡可能的輕易和直觀,這完全取決于我們。在這篇文章中,我將會(huì)介紹你可以用來(lái)達(dá)到這一目標(biāo)的幾種方法中的一種,那就是用提供線(xiàn)索來(lái)幫助用戶(hù)理解他的應(yīng)用程序。
  
  引導(dǎo)用戶(hù)
  讓?xiě)?yīng)用程序用起來(lái)更輕易的最常用的方法之一是對(duì)用戶(hù)界面的每一個(gè)要素提供細(xì)小的線(xiàn)索――提示。The Swing框架以工具提示窗口的形式提供了對(duì)這一方法的執(zhí)行。你可以通過(guò)調(diào)用它的setToolTipText的方法來(lái)為所有的Swing組件設(shè)置一個(gè)工具提示。
  
  當(dāng)工具提示設(shè)好以后,任何時(shí)候只要鼠標(biāo)指針的指示器進(jìn)入其中的組件,一個(gè)包含著文本(提示)的小窗口會(huì)在組件的上方顯示一會(huì)兒。這一提示的目的是讓用戶(hù)知道那些組件是用來(lái)干什么用的,怎樣使用它們,以及你覺(jué)得哪些信息是有用的。
  
  盡管使用工具提示很直截了當(dāng),但還是有一些缺點(diǎn)。由于Swing的執(zhí)行并不超出文本,因而工具提示只適用于很小的提示。你必須等著工具提示顯示出來(lái),然后在它消失之前閱讀它。由于提示是顯示在組件上面的,使它們看起來(lái)多少有些打攪。正因?yàn)檫@個(gè)原因,它們?cè)谥T如菜單選項(xiàng)的這樣的組件上看起來(lái)并不那么好。
  
  另一種常用的方法是將提示顯示在應(yīng)用程序的狀態(tài)欄上。這一觀點(diǎn)與前面所講的一樣;也就是說(shuō),當(dāng)鼠標(biāo)指針指示器進(jìn)入組件時(shí)提示會(huì)顯示出來(lái),而當(dāng)鼠標(biāo)指針移開(kāi)時(shí)它也就消失了。但是,由于提示是顯示在專(zhuān)為提示保留的位置上,它是可以選擇的,因而并不會(huì)遭受到工具提示的不良影響。
  
  執(zhí)行鼠標(biāo)在上面時(shí)的提示
  不幸的是,Swing并不為狀態(tài)欄提示提供內(nèi)置支持;然而,你自己執(zhí)行狀態(tài)欄提示并不困難。你需要做的基本上就是為每一個(gè)你想要顯示的組件注冊(cè)一個(gè)鼠標(biāo)監(jiān)聽(tīng)器,并實(shí)現(xiàn)MouseListener接口里的mouseEnter方法和mouseExited方法。
  
  mouseEntered這一方法將為組件顯示提示,mouseExited則將其移開(kāi)。事件源可以用來(lái)識(shí)別組件,并選擇要顯示哪些提示,這樣一來(lái),你就不需要為每一個(gè)組件注冊(cè)一個(gè)不同的鼠標(biāo)監(jiān)聽(tīng)器。
  
  MouSEOverHintManager(列表A)是一種可再次使用的類(lèi),它提供了狀態(tài)欄提示的執(zhí)行。它的使用是直截了當(dāng)?shù)摹V灰ㄟ^(guò)一個(gè)Jlabel實(shí)例去構(gòu)造一個(gè)MouseOverHintManager實(shí)例,就可以用來(lái)顯示提示;調(diào)用addHintF方法或者為每一個(gè)你想要的組件設(shè)置一個(gè)提示,調(diào)用方法enableHints來(lái)為用戶(hù)界面頂端的容器(視窗,構(gòu)架,對(duì)話(huà)框,等等)等用戶(hù)界面來(lái)設(shè)置提示。
  
  MouseOverHintManager方法的執(zhí)行非常接近前面所介紹的。AddHint or方法,接受到一個(gè)作為參數(shù)的成分所涉及的以及與之相對(duì)應(yīng)的提示,將它們保存在一個(gè)Map中以備以后修復(fù)時(shí)用。可以注重到那些提示是保存在WealHashMan的實(shí)例中的,這樣一來(lái),在沒(méi)有更多的涉及到相應(yīng)的組件時(shí),假如需要的話(huà)它們能夠自動(dòng)垃圾回收。正因?yàn)檫@樣,我們不需要找一種移走這些提示的方法。
  
  EnableHints這一方法將MouseOverHintManager作為一個(gè)鼠標(biāo)監(jiān)聽(tīng)器添加到所有的作為參數(shù)被傳遞的頂端組件中,如子組件、菜單元素等等。
  
  
  MouseEntered方法使用源事件,也就是鼠標(biāo)指針指示器所進(jìn)入的組件,這一方法把這些源事件作為一個(gè)從Map重新得到它的提示的線(xiàn)索,并在構(gòu)造器所保存的Jlabel上顯示它。MouseExited方法則將Jlabel設(shè)置成空白來(lái)清除提示。
  
  注重非凡案例:
  那些提示之所以有如所期望的那樣顯示是因?yàn)橛幸恍┲档米⒅氐男「[門(mén)。首先,注重一下mouseEntered方法是為產(chǎn)生事件的組件而設(shè)置那些提示的。假如組件沒(méi)有提示的話(huà),mouseEntered會(huì)檢查它的父類(lèi)是否有。
  
  這一過(guò)程會(huì)持續(xù)到達(dá)到頂端的組件或找到顯示給用戶(hù)的提示的時(shí)候。這一邏輯答應(yīng)你為一個(gè)容器設(shè)置一個(gè)提示,就像一個(gè)面板,讓它所有的孩子顯示相同的提示,或者為父親設(shè)置一個(gè)提示并且為孩子設(shè)置另外一個(gè)不同的提示。
  
  另一個(gè)竅門(mén)是getHintFor方法,mouseEntered調(diào)用它來(lái)為一個(gè)組件設(shè)置提示。假如它接受的作為一個(gè)參數(shù)的組件沒(méi)有提示的話(huà),它會(huì)檢測(cè)一些非凡的案例。假如那些組件是一個(gè)Jlabel或JtableHeader,這一方法將會(huì)分別返回那些附有Jlabel組件的提示或Jtable的提示。用這樣的方法,你就不需要為一個(gè)組件設(shè)一個(gè)提示然后又再為它的標(biāo)簽設(shè)一個(gè)提示,縱使它們以單獨(dú)的組件的形式顯示也無(wú)妨。
  
  使提示進(jìn)入工作中:
  MouseOverHintDemo(列表B)是一個(gè)用來(lái)說(shuō)明怎樣用MouseOverHintManager類(lèi)的簡(jiǎn)單例子。它只創(chuàng)建了一個(gè)有一個(gè)狀態(tài)欄來(lái)顯示提示和一些最常用的Swing組件的Jframe.
  
  這個(gè)例子很是簡(jiǎn)單明了;它僅僅創(chuàng)制了用戶(hù)界面的所有組件,為它們?cè)O(shè)置提示,建立應(yīng)用程序的主窗口,調(diào)用MouseOverHintManager、enableHints。注重到在建立用戶(hù)界面以后,調(diào)用enableHints作為最后的操作是很重要的,因此enablehints可以為所有的組件注冊(cè)鼠標(biāo)監(jiān)聽(tīng)器。這是必須的,這樣一來(lái),MouseOverHintManager從所有組件那里接受鼠標(biāo)事件,還可以為每一案例選擇合適的提示。
  
  運(yùn)行這個(gè)例子時(shí)會(huì)顯示有著少數(shù)幾個(gè)控制裝置的簡(jiǎn)單窗口。在那些組件和菜單元素上移動(dòng)鼠標(biāo),可以看見(jiàn)在每一個(gè)應(yīng)用程序的狀態(tài)欄顯示一個(gè)提示。注重一下有兩個(gè)無(wú)線(xiàn)電按紐顯示相同的提示,它們實(shí)際上是在他們的父面板上設(shè)置的。
  
  使用提示是讓?xiě)?yīng)用程序用起來(lái)更輕易的重要方法。狀態(tài)欄提示相對(duì)Swing工具提示是一個(gè)可選擇的辦法,而且它們很輕易執(zhí)行,用戶(hù)幾乎不需要閱讀你的說(shuō)明文檔。因而,作為軟件開(kāi)發(fā)者,讓我們的應(yīng)用程序盡可能的輕易和直觀完全取決于我們。假如你在寫(xiě)一個(gè)javaGUI,這是一個(gè)幫助添加狀態(tài)欄提示的簡(jiǎn)單方法。

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 崇左市| 登封市| 丁青县| 郁南县| 陇南市| 温泉县| 临高县| 会理县| 会昌县| 社旗县| 巩留县| 酒泉市| 阿荣旗| 马边| 朝阳市| 宜章县| 察哈| 西昌市| 德江县| 望城县| 五原县| 嘉鱼县| 崇义县| 琼结县| 科技| 彝良县| 楚雄市| 红桥区| 五莲县| 改则县| 咸阳市| 开阳县| 咸宁市| 乌拉特前旗| 浑源县| 米易县| 合阳县| 庄河市| 汤原县| 福贡县| 固阳县|