麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

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

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

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

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 免费人成在线观看网站 | 午夜影视一区二区 | 久久免费视频一区二区三区 | www.99热视频| 欧美 国产 综合 | 福利在线小视频 | 亚洲成人精品区 | 激情视频免费看 | 久久久久久亚洲国产精品 | 国人精品视频在线观看 | av之家在线观看 | av电影网在线观看 | 久久久久久亚洲国产精品 | 久久精品视频亚洲 | 一边吃奶一边插下面 | 国产一级淫片免费看 | 免费永久看羞羞片网站入口 | 激情黄页| 91成人在线免费 | 成人精品一区二区 | 在线播放一级片 | 舌头伸进添的我好爽高潮网站 | 亚洲一二三久久 | www.mitao | 成码无人av片在线观看网站 | 欧美性黄 | 免费毛片在线视频 | 午夜视频色 | 国产精品免费成人 | 久久久在线 | 久久人人人 | 国产做爰全免费的视频黑人 | 亚洲国产视频网 | 国产啊v在线观看 | 免费观看黄色一级视频 | 悠悠成人资源亚洲一区二区 | 九一免费国产 | 巨根插入 | 欧美一级特级 | 成人不卡一区二区 | 久久欧美亚洲另类专区91大神 |