亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

用狀態欄提示改善JavaGUI

2019-11-18 13:11:34
字體:
來源:轉載
供稿:網友

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久久久久久久亚洲| 国产精品成人aaaaa网站| 欧美伊久线香蕉线新在线| 久久伊人色综合| 久久久精品日本| 亚洲精品理论电影| 欧美激情一级精品国产| 国产香蕉97碰碰久久人人| 日韩欧美精品免费在线| 国产亚洲视频在线观看| 国产欧美在线播放| 欧美一级高清免费播放| 久久国产精品网站| 国产精品一区久久久| 国产精品久久久久一区二区| 欧美日韩国产成人| 日韩av免费网站| 欧美猛男性生活免费| 亚洲欧美一区二区三区在线| www国产91| 亚洲淫片在线视频| 日韩高清电影好看的电视剧电影| 国产精品成人av性教育| 57pao精品| 欧美电影免费观看网站| 精品国产乱码久久久久久天美| 亚洲色图校园春色| 国产精品视频一区国模私拍| 精品国产成人在线| 国产日本欧美在线观看| 久久精品青青大伊人av| 好吊成人免视频| 亚洲欧美一区二区激情| 亚洲国产成人精品一区二区| 成人欧美在线观看| 精品欧美一区二区三区| 亚洲免费精彩视频| 国产精品91久久久久久| 国a精品视频大全| 91免费福利视频| 亚洲已满18点击进入在线看片| 国内外成人免费激情在线视频| 国产成人一区二区三区小说| 欧美日韩免费在线观看| 亚洲美女免费精品视频在线观看| 日韩亚洲成人av在线| 91成人在线播放| 综合久久五月天| 日韩高清免费观看| 日本国产欧美一区二区三区| 国语自产精品视频在免费| 奇米影视亚洲狠狠色| 亚洲va欧美va在线观看| 69视频在线播放| 亚洲第一中文字幕在线观看| www.美女亚洲精品| 国产美女搞久久| 精品视频—区二区三区免费| 国产色婷婷国产综合在线理论片a| 久久亚洲国产成人| 亚洲国产精品久久久久秋霞蜜臀| 91夜夜揉人人捏人人添红杏| 国产精品v日韩精品| 日韩亚洲在线观看| 日韩中文字幕av| 欧美成人久久久| 亚洲最新中文字幕| 亚洲综合在线做性| 亚洲国产高清自拍| 成人激情在线观看| 成人综合网网址| 性欧美xxxx| 亚洲丁香久久久| 91豆花精品一区| 国产精品直播网红| 伦理中文字幕亚洲| 国产噜噜噜噜久久久久久久久| 日韩av电影手机在线观看| 欧美性受xxx| 日韩亚洲精品电影| 亚洲春色另类小说| 美女视频久久黄| 色www亚洲国产张柏芝| 国产婷婷色综合av蜜臀av| 亚洲激情电影中文字幕| 欧美福利视频在线| 国产亚洲欧洲黄色| 久久久久成人精品| 成人黄色生活片| 国产亚洲精品久久| 91九色蝌蚪国产| 中文字幕久精品免费视频| 亚洲电影免费观看高清完整版| 国产视频精品在线| 国产精品第8页| 成人激情视频在线观看| 欧美一级电影免费在线观看| 中文字幕亚洲综合久久筱田步美| 亚洲欧美在线一区| 久久91超碰青草是什么| 欧美电影在线观看完整版| 久久综合电影一区| 欧美一区深夜视频| 狠狠综合久久av一区二区小说| 国产主播在线一区| 国产精品久久久久久av福利软件| 久久精品国产亚洲| 亚洲国产美女久久久久| 欧美成aaa人片在线观看蜜臀| 日韩视频在线免费| 亚洲视频在线播放| 欧美日韩免费网站| 欧美在线视频在线播放完整版免费观看| 91国产精品电影| 7m第一福利500精品视频| 国产精品第2页| 精品自在线视频| 国产精品一区二区三区久久| 欧美怡红院视频一区二区三区| 久久亚洲春色中文字幕| 欧美丝袜一区二区三区| 欧美又大又粗又长| 久久99国产精品自在自在app| 久久久久免费精品国产| 日韩高清欧美高清| 国产日韩亚洲欧美| xvideos成人免费中文版| 综合国产在线观看| 一区二区三欧美| 在线观看国产精品日韩av| 亚洲精品福利在线| 欧美性猛交xxxx免费看漫画| 亚洲aaaaaa| 成人福利在线观看| 亚洲国产精品系列| 亚洲色无码播放| 国产香蕉一区二区三区在线视频| 国产亚洲成av人片在线观看桃| 欧美日韩亚洲一区二| 伊人久久久久久久久久久| 国产欧美日韩免费看aⅴ视频| 亚洲影视中文字幕| 91地址最新发布| 亚洲精品免费在线视频| 日本不卡免费高清视频| 日本国产一区二区三区| 国产精品女视频| 日本精品一区二区三区在线| 欧美日韩精品在线| 欧美在线性视频| 国产欧美精品xxxx另类| 中文字幕不卡av| 欧美最猛性xxxxx免费| 国产精品久久久久7777婷婷| 法国裸体一区二区| 亚洲无av在线中文字幕| 中文字幕国产亚洲| 日韩av在线免费观看一区| 亚洲午夜色婷婷在线| 日韩在线一区二区三区免费视频| 一区二区三区回区在观看免费视频| 日韩大陆欧美高清视频区| 亚洲男人第一网站| 国产精品久久久久久久久影视|