官术网_书友最值得收藏!

1.3 GUI程序簡(jiǎn)述

除了在后臺(tái)運(yùn)行的服務(wù)類守候程序,大多數(shù)計(jì)算機(jī)程序在運(yùn)行過(guò)程中都需要與用戶進(jìn)行交互:程序需要以某種方式從用戶那里獲取數(shù)據(jù),將計(jì)算處理所獲得的階段性或最終結(jié)果以適當(dāng)?shù)男问匠尸F(xiàn)給用戶,用戶可能還需要對(duì)程序的運(yùn)行過(guò)程以某種方式進(jìn)行干預(yù)和控制。為此,需要為用戶與程序提供交互的接口(UI)。當(dāng)前,主流程序都以形象的圖形化方式為用戶提供了這種接口,稱為圖形用戶界面(Graphical User Interface, GUI)。GUI使用戶可以使用鼠標(biāo)和鍵盤(pán)對(duì)程序的窗口、菜單、對(duì)話框等進(jìn)行操作,極大地方便了非專業(yè)用戶的使用,用戶在視覺(jué)上更易于接受,減少了用戶的認(rèn)知負(fù)擔(dān),使程序的操作更加人性化。本節(jié)以微軟公司的Windows系統(tǒng)為例,介紹GUI程序的基本組成。

1.3.1 GUI的基本組成

在GUI中,計(jì)算機(jī)屏幕上顯示窗口、圖標(biāo)、按鈕等圖形表示不同的資源對(duì)象和動(dòng)作,用戶通過(guò)鼠標(biāo)等指針設(shè)備進(jìn)行選擇、移動(dòng)和運(yùn)行程序等操作。通常有以下主要組成元素(見(jiàn)圖1.13)。

1. 桌面

桌面指GUI操作系統(tǒng)顯示程序、數(shù)據(jù)和其他資源的計(jì)算機(jī)屏幕。一般來(lái)說(shuō),桌面上會(huì)顯示各種應(yīng)用程序和數(shù)據(jù)的圖標(biāo),作為用戶對(duì)它們操作的入口。如在微軟公司的Windows 7系統(tǒng)中,各種用戶的桌面內(nèi)容實(shí)際上保存在系統(tǒng)盤(pán)(默認(rèn)為C盤(pán))C:\Users\[用戶名]\Desktop文件夾里。

通過(guò)設(shè)置墻紙(即桌面背景)為各種圖片和某種附件,可以改變桌面的視覺(jué)效果。

2. 窗口

窗口(Window)是應(yīng)用程序在圖形用戶界面中顯示的使用界面。應(yīng)用程序和數(shù)據(jù)在窗口內(nèi)實(shí)現(xiàn)一體化。用戶可以在窗口中操作應(yīng)用程序,進(jìn)行數(shù)據(jù)的管理、生成和編輯。通常在窗口四周設(shè)有菜單、圖標(biāo)、滾動(dòng)條和狀態(tài)欄等功能部件,一般主要數(shù)據(jù)顯示在窗口中央。各種數(shù)據(jù)/應(yīng)用程序的窗口設(shè)有標(biāo)題欄,一般放在窗口的最上方,并設(shè)有最大化、最小化、最前面、縮進(jìn)(僅顯示標(biāo)題欄)等動(dòng)作按鈕,可以簡(jiǎn)單地對(duì)窗口進(jìn)行相應(yīng)的操作(見(jiàn)圖1.14和圖1.15)。此外,還可以使用鼠標(biāo)拖動(dòng)窗口標(biāo)題欄移動(dòng)窗口位置,拖動(dòng)窗口邊框改變窗口大小。

單一文檔界面(Single Document Interface, SDI):一套數(shù)據(jù)在一個(gè)窗口內(nèi)顯示和操作的方式。在這種情況下,數(shù)據(jù)和顯示窗口的數(shù)量是一樣的。若要在其他應(yīng)用程序的窗口中使用數(shù)據(jù),將相應(yīng)生成新的窗口。因此窗口數(shù)量多,管理復(fù)雜。

多文檔界面(Multiple Document Interface, MDI):在一個(gè)窗口之內(nèi)進(jìn)行多套數(shù)據(jù)管理的方式。這種情況下,窗口的管理簡(jiǎn)化,但是操作變?yōu)殡p重管理。標(biāo)簽和選項(xiàng)卡是多文檔界面中數(shù)據(jù)管理的一種方式,將數(shù)據(jù)的標(biāo)題在窗口中并排,通過(guò)選擇標(biāo)簽標(biāo)題顯示必要的數(shù)據(jù)(見(jiàn)圖1.15),這樣使數(shù)據(jù)管理更為便捷。

多文檔界面主要是微軟的Windows系統(tǒng)采用,在其他環(huán)境中通常用單文檔界面。

圖1.13 GUI主要組成

圖1.14 窗口及其組成

3. 菜單

菜單是把程序提供的執(zhí)行命令以分級(jí)列表的方式顯示出來(lái)的用戶界面(見(jiàn)圖1.16),包括下拉式菜單、彈出式菜單等類型,應(yīng)用程序提供的所有命令幾乎全部能組織到菜單中。根據(jù)命令的層次還可以組織成多級(jí)菜單。使用鼠標(biāo)的第一按鍵(一般是左鍵)或鍵盤(pán)上的組合鍵(如Alt+F)可以對(duì)菜單進(jìn)行操作。菜單項(xiàng)一般是在菜單中為用戶提供的一條命令接口,當(dāng)用戶使用鼠標(biāo)單擊菜單項(xiàng)時(shí)會(huì)引發(fā)程序的一些操作。但當(dāng)菜單項(xiàng)顯示為灰色時(shí)(如圖1.16中“復(fù)制”命令),則表示在當(dāng)前情形下程序不會(huì)響應(yīng)用戶對(duì)其單擊的操作;單擊帶“…”的菜單項(xiàng)(如圖1.16中“查找”命令),程序會(huì)彈出一個(gè)相應(yīng)的對(duì)話框以便進(jìn)一步與用戶進(jìn)行交互;單擊帶“?”的菜單項(xiàng)(如圖1.16中“排列圖標(biāo)”命令)會(huì)彈出下一級(jí)菜單(稱為級(jí)聯(lián)菜單)。

圖1.15 對(duì)話框及常用GUI組件

快捷菜單:在菜單欄以外程序窗口的工作區(qū),通過(guò)鼠標(biāo)的第二按鍵(一般是右鍵)調(diào)出的菜單稱為快捷菜單。根據(jù)調(diào)出位置的不同,菜單內(nèi)容也不相同,列出所關(guān)聯(lián)的對(duì)象目前可以進(jìn)行的常用操作。

圖1.16 典型菜單

4. 工具按鈕及功能區(qū)

將使用頻繁的命令用圖形表示出來(lái),放置在窗口中較為顯眼的位置稱為工具按鈕。應(yīng)用程序中的按鈕通常可以代替菜單,這樣就不必通過(guò)菜單逐層翻找調(diào)出,從而提高了工作效率。但即使同一個(gè)應(yīng)用程序,各種用戶使用同一個(gè)命令的頻率也是不一樣的,因此工具按鈕也可以由用戶自定義。

Windows 7和Microsoft Office 2007及以后版本的一些程序(如畫(huà)圖程序)中,使用了一種以皮膚及標(biāo)簽頁(yè)為架構(gòu)的功能區(qū)(Ribbon)用戶界面,以替代傳統(tǒng)的菜單欄、工具欄和下拉菜單。該界面將相關(guān)的選項(xiàng)組織在一組,將最常用的命令放到窗口的最突出位置,用戶可以更輕松地找到并使用這些功能,并減少鼠標(biāo)的單擊次數(shù),總體來(lái)說(shuō)比之前的下拉菜單效率要高很多。例如,文件管理器“主頁(yè)”主功能區(qū)中提供了核心的文件管理功能,包括復(fù)制、粘貼、刪除、恢復(fù)、剪切、屬性等(見(jiàn)圖1.17)。這些功能占用戶日常操作的大部分。

圖1.17 Windows 8的資源管理器的功能區(qū)

5. 圖標(biāo)

圖標(biāo)是在GUI操作系統(tǒng)桌面或程序窗口中顯示的代表應(yīng)用程序或程序所管理的數(shù)據(jù)的圖形符號(hào)(見(jiàn)圖1.18),一般是一個(gè)指向相應(yīng)程序或文件的鏈接。

文件夾(也稱為目錄)中的用戶數(shù)據(jù)和程序管理的特定數(shù)據(jù)通過(guò)圖標(biāo)顯示出來(lái)。通常情況下顯示的是數(shù)據(jù)內(nèi)容縮略圖,或與數(shù)據(jù)相關(guān)聯(lián)的應(yīng)用程序的代表圖案。單擊數(shù)據(jù)的圖標(biāo),可以完成啟動(dòng)相關(guān)應(yīng)用程序及顯示數(shù)據(jù)本身兩步工作。

圖1.18 程序中代表數(shù)據(jù)的圖標(biāo)

應(yīng)用程序的圖標(biāo)只能用于啟動(dòng)應(yīng)用程序。

6. 對(duì)話框

對(duì)話框是GUI中的一種特殊窗口(見(jiàn)圖1.15),用于向用戶顯示信息,或在需要的時(shí)候獲取用戶的響應(yīng),或者兩者皆有。程序使用對(duì)話框與用戶交互的方式就是計(jì)算機(jī)和用戶之間進(jìn)行“對(duì)話”。

非模態(tài)對(duì)話框:用于向用戶請(qǐng)求非必需信息,可以不理會(huì)這種對(duì)話框或不向其提供任何信息而繼續(xù)進(jìn)行當(dāng)前工作。對(duì)話框所屬程序窗口與該對(duì)話框窗口均可處于打開(kāi)且活動(dòng)狀態(tài)。

模態(tài)對(duì)話框:這種對(duì)話框強(qiáng)制要求用戶響應(yīng),在用戶與該對(duì)話框完成交互之前不能再繼續(xù)進(jìn)行其他操作。模態(tài)對(duì)話框用在需要一些必需的信息然后才可以繼續(xù)進(jìn)行其他操作,或確認(rèn)用戶想要進(jìn)行一項(xiàng)具有潛在危險(xiǎn)性操作的情況下。模態(tài)對(duì)話框一般分為系統(tǒng)級(jí)和應(yīng)用程序級(jí)。系統(tǒng)級(jí)對(duì)話框出現(xiàn)時(shí),用戶在完成與這個(gè)對(duì)話框交互之前不能在該計(jì)算機(jī)系統(tǒng)中進(jìn)行其他操作,例如關(guān)閉對(duì)話框。應(yīng)用程序級(jí)的模態(tài)對(duì)話框則只對(duì)它所屬的程序有所限制。

1.3.2 Java GUI程序的構(gòu)成

使用Java語(yǔ)言開(kāi)發(fā)的桌面GUI程序運(yùn)行時(shí)一般都會(huì)打開(kāi)一個(gè)窗口,用戶對(duì)程序的使用和操作都在窗口中進(jìn)行。Java GUI程序首先要生成和管理一個(gè)窗口。窗口是一個(gè)Java GUI程序的界面容器,其中包含圖標(biāo)、按鈕、菜單等組件。

為了對(duì)相關(guān)組件進(jìn)行分類組織和統(tǒng)一管理,可以把這些組件一起放到一個(gè)容器中。容器是一種能夠容納其他組件或容器的特殊組件。Java GUI程序?qū)Τ绦虼翱诩捌渌萜髦薪M件排放次序和位置的控制和管理稱為布局。最簡(jiǎn)單的布局方法是指定各個(gè)組件左上角在窗口中的位置及其寬度和高度。當(dāng)各個(gè)組件的位置指定之后,也就確定了它們的排放次序。這種絕對(duì)定位方式可以精確控制每一個(gè)組件在窗口中的排布,但當(dāng)窗口大小改變之后,一些組件可能出現(xiàn)在窗口邊框之外而不可見(jiàn),一些組件可能離窗口邊框太遠(yuǎn),一些邊框周?chē)M件太擁擠,一些邊框周?chē)諘纾@就破壞了原本設(shè)計(jì)得很美觀協(xié)調(diào)的界面。而且每種類型操作系統(tǒng)對(duì)屏幕的定義不一樣,界面在一種視窗系統(tǒng)中很美觀,但到了另一種系統(tǒng)中就未必。為了解決對(duì)組件絕對(duì)定位存在的問(wèn)題,Java GUI程序可以采用托管定位的方式進(jìn)行自動(dòng)布局管理,具體工作由一種叫作布局管理器的對(duì)象完成。給容器指定了布局管理器并設(shè)置了布局信息后,顯示時(shí)將會(huì)自動(dòng)對(duì)其中的子組件進(jìn)行布局、定位和計(jì)算大小的操作,從而使組件以更好的方式顯示在容器中。

當(dāng)GUI程序運(yùn)行時(shí),用戶單擊鼠標(biāo)、輸入字符或者改變窗口等操作發(fā)生時(shí),操作系統(tǒng)都會(huì)生成應(yīng)用程序GUI事件,例如,鼠標(biāo)單擊事件、按鍵事件或者窗口繪制事件,確定哪個(gè)窗口和應(yīng)用程序應(yīng)當(dāng)接收事件,并把事件添加到應(yīng)用程序的事件隊(duì)列中。操作系統(tǒng)和應(yīng)用程序通過(guò)事件循環(huán)處理用戶的操作,從事件隊(duì)列中讀取GUI事件,并根據(jù)具體的事件類型和有關(guān)信息執(zhí)行程序的相關(guān)功能,從而對(duì)用戶的操作做出相應(yīng)的反應(yīng)。

總之,程序的GUI是以圖像的方式在計(jì)算機(jī)顯示屏上顯示的,顯示時(shí)需要確定圖像各像素的坐標(biāo)和顏色等信息。一個(gè)Java GUI程序首先需要?jiǎng)?chuàng)建窗口,至少有一個(gè)容器容納了其他界面組件。程序一般通過(guò)設(shè)置布局管理器對(duì)窗口中各個(gè)組件的顯示位置和大小進(jìn)行管理。用戶在界面組件上的操作產(chǎn)生事件,通過(guò)事件循環(huán)執(zhí)行程序的有關(guān)功能對(duì)事件進(jìn)行響應(yīng)。

主站蜘蛛池模板: 峡江县| 广昌县| 瑞丽市| 五大连池市| 芮城县| 揭阳市| 蒙城县| 黎城县| 吴旗县| 罗平县| 理塘县| 洪湖市| 长宁区| 化隆| 丰宁| 南部县| 延津县| 南投县| 株洲市| 乌兰察布市| 新和县| 高陵县| 龙游县| 木里| 唐河县| SHOW| 布拖县| 区。| 莱西市| 平塘县| 东城区| 兴隆县| 汝州市| 广昌县| 沂南县| 南江县| 理塘县| 宝鸡市| 兴海县| 绥德县| 奇台县|