JAVA自作QQ屏幕截圖工具_(dá)第1頁(yè)
JAVA自作QQ屏幕截圖工具_(dá)第2頁(yè)
JAVA自作QQ屏幕截圖工具_(dá)第3頁(yè)
JAVA自作QQ屏幕截圖工具_(dá)第4頁(yè)
JAVA自作QQ屏幕截圖工具_(dá)第5頁(yè)
已閱讀5頁(yè),還剩36頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、本科生畢業(yè)設(shè)計(jì)(論文)JAVA自作QQ屏幕截圖工具摘 要捕捉圖像方式靈活,主要可以捕捉整個(gè)屏幕、活動(dòng)窗口、選定區(qū)域、固定區(qū)域、選定控件、選定菜單等,圖像輸出方式多樣,主要包括文件、剪貼板、畫圖。軟件具有捕捉光標(biāo)、設(shè)置捕捉前延時(shí)、顯示屏幕放大鏡、自定義捕捉熱鍵、圖像文件自動(dòng)按時(shí)間或模板命名捕捉到的圖像能夠以保存圖像文件、復(fù)制到剪貼板、等多種方式輸出。圖像文件自動(dòng)命名功能,能夠?qū)Σ蹲降降膱D片進(jìn)行自動(dòng)命名保存,可以設(shè)置根據(jù)時(shí)間或文件名模板自動(dòng)保存。捕捉圖像預(yù)覽功能,在捕捉完成后,顯示預(yù)覽窗口。圖像保存目錄及格式設(shè)置功能,可以為捕捉的圖像規(guī)定默認(rèn)保存位置及圖像格式,圖像格式包括BMP、GIF、JPG、

2、PNG、TIF等。捕捉層疊菜單功能,在選定菜單捕捉時(shí)可以設(shè)置是否捕捉層疊(級(jí)聯(lián))菜單??梢越厝《鄠€(gè)圖片,分多層界面顯示已截圖片。關(guān)鍵詞:截圖;保存;復(fù)制到剪切板;JAVA since QQ screenshots toolsAbstractCapture the image flexibly, and the main can capture the whole screen, the active window, the selected region, fixed area, the selected control, select menu, image output way diver

3、se, mainly including documents, clipboard, drawing.Software is to capture the cursor, set the delay before capture, display screen magnifier, custom capture hotkey, automatic image file on time or template name.Capture the image to save the image file, copied to the clipboard, a variety of ways, suc

4、h as the output.Image file named function automatically, to be able to capture the image automatically named save, can be set according to time or template automatically saved in the file name.Capture the image preview function, after completion of the capture, display the preview window.Image save

5、directory and format setting function, can be preserved to capture images of the provisions of the default location and image format, image format, including BMP, GIF, JPG, PNG, TIF, etc.When capture to capture the cascading menu function, the selected menu you can set whether to capture the cascadi

6、ng menu (cascade).Can capture multiple images, multi-layer interface has sectional image display.Key words: capture; Save; Copied to the clipboard;目錄1. 引言22可行性分析及開發(fā)環(huán)境的選擇32.1 可行性分析32.1.1.技術(shù)可行性32.1.2經(jīng)濟(jì)可行性32.2運(yùn)行環(huán)境的選擇32.3開發(fā)工具的選擇32.4 B/S模式43. 系統(tǒng)需求分析73.1 性能需求73.2 E-R圖設(shè)計(jì)74. 系統(tǒng)設(shè)計(jì)94.1本系統(tǒng)的設(shè)計(jì)目標(biāo)94.2系統(tǒng)功能整體設(shè)計(jì)95.

7、系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)105.1系統(tǒng)主界面實(shí)現(xiàn)105.2系統(tǒng)截圖實(shí)現(xiàn)126. 參考文獻(xiàn)257.致謝381. 引言隨著計(jì)算機(jī)技術(shù)的高速發(fā)展,特別是計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)與數(shù)據(jù)庫(kù)技術(shù)的發(fā)展,使得人們的生活與工作方式發(fā)生了極大的改觀。伴隨著計(jì)算機(jī)互聯(lián)網(wǎng)技術(shù)的高速發(fā)展,數(shù)字化的時(shí)代已經(jīng)正式的走進(jìn)了我們的學(xué)習(xí)、生活和工作中,也大幅度的改善和豐富了人們的文化生活,提高了人們的生活質(zhì)量,互聯(lián)網(wǎng)技術(shù)和數(shù)據(jù)庫(kù)技術(shù)的完美結(jié)合給人們的生活帶來(lái)了巨大且客觀的影響。高效率工作已然成為社會(huì)主題,很多時(shí)候,截圖軟件可以幫助我們提高很多工作效率和生活節(jié)奏。截圖軟件可以幫助我們截圖,保存,復(fù)制等功能,完善生活和工作的需要,工作中需要圖片粘貼,書

8、寫文檔等。生活中我們可以通過截圖軟件分享圖片和解決問題等。2可行性分析及開發(fā)環(huán)境的選擇2.1 可行性分析 可行性研究是在對(duì)一種調(diào)查鑒定項(xiàng)目的早期發(fā)展,調(diào)查研究的綜合,提出的項(xiàng)目,目的是確定項(xiàng)目是否可行。信息系統(tǒng)技術(shù)的可行性,從系統(tǒng)開發(fā)的計(jì)劃開始的研究,論述了系統(tǒng)的開發(fā)和示范的強(qiáng)度的可行性,各種系統(tǒng)采用的技術(shù)手段是否可以實(shí)現(xiàn)。經(jīng)濟(jì)可行性的信息系統(tǒng)主要是對(duì)項(xiàng)目的經(jīng)濟(jì)評(píng)價(jià),可行性建設(shè)投資體制和效益評(píng)估系統(tǒng)的運(yùn)行帶來(lái)的組織分析。如果信息系統(tǒng)的可行性研究工作提供的方案可以從人力,資源,組織,確保項(xiàng)目順利實(shí)施完成,而且在經(jīng)濟(jì)項(xiàng)目的開發(fā),技術(shù)和環(huán)境可以保證系統(tǒng)的正常運(yùn)行。 由于系統(tǒng)建設(shè)是一項(xiàng)投資大,涉及范圍

9、廣,復(fù)雜的系統(tǒng)工程,因此要充分論證其可行性,以確保投資是準(zhǔn)確的,而信息系統(tǒng)的建設(shè)是一個(gè)完整的作品,必須站在系統(tǒng)的角度論證了其可行性是令人信服的,才有意義??尚行匝芯康哪康氖怯米钚〉拇鷥r(jià),在盡可能確定問題是否可以在短時(shí)間內(nèi)解決,其目的不是解決問題,而是確定問題是否值得解決,從以下兩個(gè)方面考慮可行性。2.1.1.技術(shù)可行性截圖截圖系統(tǒng)則主要采用B/S結(jié)構(gòu)、JAVA語(yǔ)言及Internet網(wǎng)絡(luò)技術(shù)等。這些都是現(xiàn)在主流技術(shù),我們可以輕易找到符合要求的工具。所以,從技術(shù)上來(lái)說,開發(fā)這個(gè)系統(tǒng)的技術(shù)難題是不太多,且對(duì)于使用者來(lái)說,易于操作和維護(hù)。2.1.2經(jīng)濟(jì)可行性從我搜集的一些資料來(lái)看,屏幕截圖系統(tǒng)對(duì)計(jì)算機(jī)

10、硬件沒有特殊要求,而我們是自行開發(fā)的系統(tǒng),成本可以忽略不計(jì),還有后期維護(hù)的費(fèi)用也相對(duì)比較低廉。綜上所述,從技術(shù)上、經(jīng)濟(jì)上都是可行的,而且要求不高,所以該系統(tǒng)的開發(fā)是可行的。2.2運(yùn)行環(huán)境的選擇由于本系統(tǒng)對(duì)運(yùn)行環(huán)境沒有過高的要求,對(duì)機(jī)器本身沒有太高的要求,一般當(dāng)前學(xué)?;騻€(gè)人電腦完全可滿足要求。服務(wù)器端在Windows 2000 、XP或Window 7下安裝使用,操作簡(jiǎn)潔、維護(hù)方便,用戶易操作??蛻舳丝梢栽赪indows 98及以上版本運(yùn)行使用即可。因?yàn)楸鞠到y(tǒng)是小型系統(tǒng),只需要一臺(tái)PC機(jī)即可,軟件使用的是免費(fèi)軟件,成本比較低。用戶只需要登錄系統(tǒng)就可以完成它的功能。2.3開發(fā)工具的選擇Java語(yǔ)言

11、的面向?qū)ο?、平臺(tái)無(wú)關(guān)、分布式、多線程、可靠和安全等特性:面向?qū)ο笃鋵?shí)是現(xiàn)實(shí)世界模型的自然延伸?,F(xiàn)實(shí)世界中任何實(shí)體都可以被看作是對(duì)象。世界中任何實(shí)體都可歸類于某類事物,任何對(duì)象都是某一類事物的實(shí)例。對(duì)象之間通過消息進(jìn)行相互作用。平臺(tái)無(wú)關(guān)性。Java是平臺(tái)無(wú)關(guān)的語(yǔ)言是指用Java寫的應(yīng)用程序不用修改就可在不同的軟硬件平臺(tái)上運(yùn)行。平臺(tái)無(wú)關(guān)有兩種:源代碼級(jí)和目標(biāo)代碼級(jí)。Java主要靠Java虛擬機(jī)(JVM)在目標(biāo)碼級(jí)實(shí)現(xiàn)平臺(tái)無(wú)關(guān)性。JVM是一種抽象機(jī)器,它附著在具體操作系統(tǒng)之上,本身具有一套虛機(jī)器指令,并有自己的棧和寄存器組等。但JVM通常是在軟件上而不是在硬件上實(shí)現(xiàn)。JVM是Java平臺(tái)無(wú)關(guān)的基礎(chǔ),

12、從而確保了Java的平臺(tái)無(wú)關(guān)性。Java編程人員在編寫完軟件后,通過Java編譯器將Java源程序編譯為JVM的字節(jié)代碼。任何一臺(tái)機(jī)器只要能夠配備了Java解釋器,就可以運(yùn)行自己編寫的程序,而不管這種字節(jié)碼是在何種平臺(tái)上生成的??煽啃院桶踩?。Java是源于C+,但它去除了許多C+不可靠因素,可以防止許多編程出現(xiàn)的錯(cuò)誤。Java是強(qiáng)類型的語(yǔ)言,要求顯式的方法聲明,這保證了編譯器可以發(fā)現(xiàn)方法調(diào)用錯(cuò)誤,保證程序更加可靠。Java解釋器運(yùn)行時(shí)實(shí)施檢查,可以發(fā)現(xiàn)數(shù)組和字符串訪問的越界。Java不支持指針,這杜絕了內(nèi)存的非法訪問。Java的自動(dòng)單元收集防止了內(nèi)存丟失等動(dòng)態(tài)內(nèi)存分配導(dǎo)致的問題。多線程。線程

13、是操作系統(tǒng)的一種新概念,它又被稱作輕量進(jìn)程,是比傳統(tǒng)進(jìn)程更小的可并發(fā)執(zhí)行的單位。C和C+采用單線程體系結(jié)構(gòu),而Java卻提供了多線程支持6。2.4 B/S模式B/S即Browser/Server(瀏覽器/服務(wù)器)結(jié)構(gòu),就是只安裝維護(hù)一個(gè)服務(wù)器(Server),而客戶端采用瀏覽器(Browse)運(yùn)行軟件。B/S結(jié)構(gòu)應(yīng)用程序相對(duì)于傳統(tǒng)的C/S結(jié)構(gòu)應(yīng)用程序是一個(gè)非常大的進(jìn)步。 B/S結(jié)構(gòu)的主要特點(diǎn)是分布性較強(qiáng)、維護(hù)的方便、開發(fā)簡(jiǎn)單且共享性強(qiáng)、總體擁有成本低。在這樣結(jié)構(gòu)下,主要是利用不斷成熟的 WWW 瀏覽器技術(shù),結(jié)合很多瀏覽器的多種Script語(yǔ)言和 ActiveX 技術(shù),用戶的界面完全是通過 WW

14、W 瀏覽器實(shí)現(xiàn),一部分事務(wù)邏輯在前端實(shí)現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端實(shí)現(xiàn),形成所謂3-tier 結(jié)構(gòu)。B/S結(jié)構(gòu),用通用瀏覽器就實(shí)現(xiàn)了原來(lái)需要復(fù)雜專用軟件才能實(shí)現(xiàn)了更強(qiáng)大功能,并節(jié)約了大量開發(fā)成本,是一種全新的軟件系統(tǒng)構(gòu)造技術(shù)。顯然 B/S 結(jié)構(gòu)應(yīng)用程序相對(duì)于傳統(tǒng)的 C/S 結(jié)構(gòu)應(yīng)用程序是巨大的進(jìn)步。在這種結(jié)構(gòu)下,用戶工作界面是通過IE游覽器來(lái)實(shí)現(xiàn)的。隨著Internet和WWW的流行,從前的主機(jī)終端和CS都無(wú)法滿足當(dāng)前的全球網(wǎng)絡(luò)開放、互連、信息隨處可見和信息共享的新要求,于是就出現(xiàn)了BS型模式,即瀏覽器服務(wù)器結(jié)構(gòu)。B/S模式最大特點(diǎn)是:用戶可以通過WWW瀏覽器去訪問Internet上的文本、

15、數(shù)據(jù)、圖像、動(dòng)畫、視頻點(diǎn)播和聲音信息,客戶端除了WWW瀏覽器,一般無(wú)須任何用戶程序,只需從Web服務(wù)器上下載程序到本地來(lái)執(zhí)行,在下載過程中若遇到與數(shù)據(jù)庫(kù)有關(guān)的指令,這些信息都是由許許多多的Web服務(wù)器產(chǎn)生的,在這種結(jié)構(gòu)中,將許許多多的網(wǎng)連接到一塊,形成一個(gè)巨大的網(wǎng),即全球網(wǎng)。而各個(gè)企業(yè)可以在此結(jié)構(gòu)的基礎(chǔ)上建立自己的Internet。B/S結(jié)構(gòu)的優(yōu)點(diǎn):具有分布性特點(diǎn),可以隨時(shí)隨地進(jìn)行查詢、瀏覽等業(yè)務(wù)處理。業(yè)務(wù)擴(kuò)展簡(jiǎn)單方便,通過增加網(wǎng)頁(yè)即可增加服務(wù)器功能。維護(hù)簡(jiǎn)單方便,只需要改變網(wǎng)頁(yè),即可實(shí)現(xiàn)所有用戶的同步更新。開發(fā)簡(jiǎn)單,共享性強(qiáng)。B/S 結(jié)構(gòu)的缺點(diǎn):個(gè)性化特點(diǎn)明顯的降低,無(wú)法實(shí)現(xiàn)具有個(gè)性化的功能

16、要求。操作是以鼠標(biāo)為最基本的操作方式,無(wú)法滿足快速操作的要求。頁(yè)面動(dòng)態(tài)刷新,響應(yīng)速度明顯降低。無(wú)法實(shí)現(xiàn)分頁(yè)顯示,給數(shù)據(jù)庫(kù)訪問造成較大的壓力。功能弱化,難以實(shí)現(xiàn)傳統(tǒng)模式下的特殊功能要求。B/S架構(gòu)軟件的優(yōu)勢(shì)與劣勢(shì):維護(hù)和升級(jí)的方式比較簡(jiǎn)單。目前,軟件系統(tǒng)的改進(jìn)和升級(jí)越來(lái)越頻繁,C/S系統(tǒng)的各部分模塊中有某一部分改變,就要關(guān)聯(lián)到其它模塊的變動(dòng),從而使系統(tǒng)升級(jí)成本比較大。B/S與C/S處理模式相比,則大大簡(jiǎn)化了客戶端,只要客戶端機(jī)器能上網(wǎng)就可以。對(duì)于B/S而言,開發(fā)、維護(hù)等幾乎所有工作幾乎都集中在服務(wù)器端,當(dāng)企業(yè)對(duì)網(wǎng)絡(luò)應(yīng)用進(jìn)行升級(jí)時(shí),只需更新服務(wù)器端的軟件就可以,這減輕了異地用戶系統(tǒng)維護(hù)與升級(jí)的成本

17、。如果客戶端的軟件系統(tǒng)升級(jí)比較頻繁,那么B/S架構(gòu)的產(chǎn)品優(yōu)勢(shì)明顯,所有的升級(jí)操作只需要針對(duì)服務(wù)器進(jìn)行,這對(duì)那些點(diǎn)多面廣的應(yīng)用是很有價(jià)值的,例如一些招聘網(wǎng)站就需要采用B/S模式,客戶端分散,且應(yīng)用簡(jiǎn)單,只需要進(jìn)行簡(jiǎn)單的瀏覽和少量信息的錄入。 系統(tǒng)的性能。在系統(tǒng)的性能方面,B/S 建立在廣域網(wǎng)上, 面向不同的用戶群, 分散地域, 這是C/S無(wú)法作到的或者說不擅長(zhǎng)的. 與操作系統(tǒng)平臺(tái)關(guān)系最小。采用C/S結(jié)構(gòu)時(shí),客戶端以及服務(wù)器端都能夠處理相應(yīng)的任務(wù),即使對(duì)客戶機(jī)要求比較高,但也正因?yàn)檫@樣可以減輕服務(wù)器的壓力。由于客戶端使用瀏覽器,使得網(wǎng)上發(fā)布的信息必須是以HTML格式為主,其它格式文件多半是以附件的

18、形式存放。而HTML格式文件(也就是Web頁(yè)面)不便于編輯修改,給文件管理帶來(lái)了許多不便。系統(tǒng)的開發(fā)。C/S結(jié)構(gòu)是建立在中間件產(chǎn)品基礎(chǔ)之上的,要求應(yīng)用開發(fā)者自己去處理事務(wù)管理、消息隊(duì)列、數(shù)據(jù)的復(fù)制和同步、通信安全等系統(tǒng)級(jí)的問題。這使得應(yīng)用程序的維護(hù)、移植和互操作變得復(fù)雜。從技術(shù)成熟度和軟件設(shè)計(jì)、開發(fā)人員的掌握情況來(lái)看,C/S技術(shù)應(yīng)是更成熟、更可靠的。其實(shí),無(wú)論是B/S還是C/S,他們都不新鮮。C/S(Client rver,客戶端/服務(wù)器)技術(shù)從上世紀(jì)90年代初出現(xiàn)至今已經(jīng)非常的成熟,目前廣泛被大量的應(yīng)用,它的結(jié)構(gòu)經(jīng)歷了二層C/S、三層C/S的更迭。B/S(Browser rver,瀏覽器/服

19、務(wù)器)技術(shù)則是隨著Internet的通用而來(lái)的。有必要說明的是,B/S最早不被稱為“B/S”,此類應(yīng)用國(guó)外通常叫Web應(yīng)用,是國(guó)內(nèi)一些公司“創(chuàng)造”了“B/S”這個(gè)詞。 應(yīng)該說,B/S和C/S都有自己的好處,他們都是現(xiàn)代極其重要的運(yùn)算架構(gòu)。在適當(dāng)?shù)腎nternet、維持工作量等方面,B/S比C/S要強(qiáng)得多;但在運(yùn)行的速度、數(shù)據(jù)的安全、人機(jī)的交互等很多方面,B/S遠(yuǎn)比不上C/S。從中可以發(fā)現(xiàn),凡是C/S的強(qiáng)項(xiàng),便是B/S的弱項(xiàng)。 而B/S結(jié)構(gòu)軟件則不同,所有的用戶都是通過一個(gè)JDBC連接緩沖池連接到數(shù)據(jù)庫(kù)的,用戶并不保持對(duì)數(shù)據(jù)庫(kù)的連接,用戶數(shù)基本上是無(wú)限的。 B/S瀏覽器的技術(shù)決定了操作的體驗(yàn)是非

20、常不方便的。瀏覽器的版本變動(dòng)極快,很容易造成兼容性問題。比如IE和Firefox打開同一個(gè)網(wǎng)站會(huì)差異很大類似這些不兼容的問題對(duì)客戶使用會(huì)造成困擾。適合簡(jiǎn)單的錄入,不太方便??旖萱I和光標(biāo)支持不好。以鼠標(biāo)為最基本的操作方式。B/S最大的優(yōu)點(diǎn)(最簡(jiǎn)單:B/S最大優(yōu)勢(shì):客戶端不用維護(hù),適用于用戶群龐大,或客戶需求經(jīng)常發(fā)生變化的情況。只有掌握以上這些技術(shù)的基礎(chǔ),才能使本截圖系統(tǒng)的設(shè)計(jì)及開發(fā)得以正常進(jìn)行。2.4.1.C/S 與 B/S 的區(qū)別如下:Client/Server是建立在局域網(wǎng)的基礎(chǔ)上的。Browser/Server是建立在廣域網(wǎng)的基礎(chǔ)上的。(1)硬件環(huán)境不同:C/S 一般建立在專用的網(wǎng)絡(luò)上,小

21、范圍里的網(wǎng)絡(luò)環(huán)境,局域網(wǎng)之間再通過專門服務(wù)器提供連接和數(shù)據(jù)交換服務(wù)。B/S 建立在廣域網(wǎng)之上的,不必是專門的網(wǎng)絡(luò)硬件環(huán)境,例如電話上網(wǎng)、租用設(shè)備、信息管理,有比C/S更強(qiáng)的適應(yīng)范圍,一般只要有操作系統(tǒng)和瀏覽器就行。(2)對(duì)安全要求不同C/S 一般面向相對(duì)固定的用戶群,對(duì)信息安全的控制能力很強(qiáng)。一般高度機(jī)密的信息系統(tǒng)采用C/S 結(jié)構(gòu)適宜??梢酝ㄟ^B/S發(fā)布部分可公開信息。B/S 建立在廣域網(wǎng)之上,對(duì)安全的控制能力相對(duì)弱,面向是不可知的用戶群。(3)對(duì)程序架構(gòu)不同C/S 程序可以更加注重流程,可以對(duì)權(quán)限多層次校驗(yàn),對(duì)系統(tǒng)運(yùn)行速度可以較少考慮。B/S 對(duì)安全以及訪問速度的多重的考慮,建立在需要更加優(yōu)

22、化的基礎(chǔ)之上。比C/S有更高的要求 B/S結(jié)構(gòu)的程序架構(gòu)是發(fā)展的趨勢(shì),從MS的Net系列的BizTalk 2000 Exchange 2000等, 全面支持網(wǎng)絡(luò)的構(gòu)件搭建的系統(tǒng)。 SUN 和IBM推的JavaBean 構(gòu)件技術(shù)等,使B/S更加成熟。(4)軟件重用不同C/S 程序可以不可避免的整體性考慮, 構(gòu)件的重用性不如在B/S要求下的構(gòu)件的重用性好。B/S 對(duì)的多重結(jié)構(gòu),要求構(gòu)件相對(duì)獨(dú)立的功能。能夠相對(duì)較好的重用。(5)系統(tǒng)維護(hù)不同系統(tǒng)維護(hù)在是軟件生存周期中,開銷大。C/S 程序由于整體性,必須整體考察,處理出現(xiàn)的問題以及系統(tǒng)升級(jí),升級(jí)難??赡苁窃僮鲆粋€(gè)全新的系統(tǒng)B/S 構(gòu)件組成,方面構(gòu)件個(gè)

23、別的更換,實(shí)現(xiàn)系統(tǒng)的無(wú)縫升級(jí)。系統(tǒng)維護(hù)開銷減到最小。用戶從網(wǎng)上自己下載安裝就可以實(shí)現(xiàn)升級(jí)。(6)處理問題不同C/S 程序可以處理用戶面固定,并且在相同區(qū)域,安全要求高需求,與操作系統(tǒng)相關(guān)。應(yīng)該都是相同的系統(tǒng)B/S 建立在廣域網(wǎng)上,面向不同的用戶群,分散地域,這是C/S無(wú)法作到的。與操作系統(tǒng)平臺(tái)關(guān)系最小。(7)用戶接口不同C/S 多是建立的Window平臺(tái)上,表現(xiàn)方法有限,對(duì)程序員普遍要求較高 B/S 建立在瀏覽器上,有更加豐富和生動(dòng)的表現(xiàn)方式與用戶交流。并且大部分難度減低,減低開發(fā)成本。(8)信息流不同C/S 程序一般是典型的中央集權(quán)的機(jī)械式處理,交互性相對(duì)低,B/S 信息流向可變化,B-B、

24、B-C、B-G等信息、流向的變化,更像交易中心。3. 系統(tǒng)需求分析3.1 性能需求提供兩種界面效果,可以供不同用戶喜歡效果,界面友好,操作簡(jiǎn)單易學(xué),方便快捷。3.2 E-R圖設(shè)計(jì)ER模型直接從現(xiàn)實(shí)世界抽象出實(shí)體類型及實(shí)體間聯(lián)系,然后用ER圖來(lái)表示數(shù)據(jù)模型。它有兩個(gè)明顯的優(yōu)點(diǎn):接近于人的思維,容易理解;與計(jì)算機(jī)無(wú)關(guān),用戶容易接受。E-R圖為實(shí)體-聯(lián)系圖,提供了表示實(shí)體型、屬性和聯(lián)系的方法,用來(lái)描述現(xiàn)實(shí)世界的概念模型。 構(gòu)成E-R圖的基本要素是實(shí)體型、屬性和聯(lián)系,其表示方法為: 實(shí)體型:用矩形表示,矩形框內(nèi)寫明實(shí)體名; 屬性:用橢圓形表示,并用無(wú)向邊將其與相應(yīng)的實(shí)體連接起來(lái); 聯(lián)系:用菱形表示,菱

25、形框內(nèi)寫明聯(lián)系名,并用無(wú)向邊分別與有關(guān)實(shí)體連接起來(lái),同時(shí)在無(wú)向邊旁標(biāo)上聯(lián)系的類型(1 : 1,1 : n或m : n)。本系統(tǒng)的各實(shí)體類的屬性圖如圖1,圖2,圖3所示:操作人員界面格調(diào)圖1操作界面格局屬性圖操作人員截 圖圖2截圖管理屬性圖點(diǎn) 擊人員退出系統(tǒng)圖3退出系統(tǒng)屬性圖 本系統(tǒng)的E-R圖如圖4所示圖4系統(tǒng)E-R圖4. 系統(tǒng)設(shè)計(jì)4.1本系統(tǒng)的設(shè)計(jì)目標(biāo)JAVA自作屏幕截圖系統(tǒng)代替了原來(lái)的手工操作,能夠快速、準(zhǔn)確地截取圖片,保存等功能。 具體有以下實(shí)現(xiàn)功能:快速清細(xì)節(jié)圖操作方便簡(jiǎn)單提供不能界面效果4.2系統(tǒng)功能整體設(shè)計(jì)系統(tǒng)開發(fā)的總體任務(wù)如下: 截圖部分,操作簡(jiǎn)單,截圖畫面清晰,有操作提示。保存到

26、剪切板,提供粘貼到word等功能。保存,提供選擇目錄界面,現(xiàn)則要保存的界面,保存圖片。如圖5所示: 圖5系統(tǒng)流程圖5. 系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)5.1系統(tǒng)主界面實(shí)現(xiàn)系統(tǒng)主界面如圖1所示 圖1 截圖系統(tǒng)主界面界面格調(diào)部分實(shí)現(xiàn):JPanel jp=new JPanel();/放置兩個(gè)單選按鈕的面板jp.add(java=new JRadioButton(JAVA界面);jp.add(system=new JRadioButton(系統(tǒng)界面,true);java.addActionListener(this);system.addActionListener(this);jp.setBorder(BorderF

27、actory.createTitledBorder(界面格調(diào));截圖操作區(qū)部分代碼實(shí)現(xiàn):start=new JButton(開始截取);cancel=new JButton(退出);start.addActionListener(this);cancel.addActionListener(this);JPanel buttonJP=new JPanel();c=new JPanel(new BorderLayout();JLabel jl=new JLabel(截圖展示區(qū), JLabel.CENTER);工具欄整體實(shí)現(xiàn):JPanel newall=new JPanel();newall.ad

28、d(all,BorderLayout.NORTH);newall.setBorder(BorderFactory.createTitledBorder(工具欄);圖2 截圖系統(tǒng)(java界面)主界面界面格局效果代碼實(shí)現(xiàn)else if(source=java) / 金屬外觀 try UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName(); SwingUtilities.updateComponentTreeUI(this); catch(Exception exe) exe.printStackTrace

29、(); else if(source=system) / 本地外觀 try UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName(); SwingUtilities.updateComponentTreeUI(this); catch(Exception exe) exe.printStackTrace(); 5.2系統(tǒng)截圖實(shí)現(xiàn)圖片移動(dòng)光標(biāo)截取圖片代碼:/特意定義一個(gè)方法處理鼠標(biāo)移動(dòng),是為了每次都能初始化一下所要選擇的區(qū)域 private void doMouseMoved(MouseEvent me) if(sele

30、ct.contains(me.getPoint() this.setCursor(new Cursor(Cursor.MOVE_CURSOR); current=States.MOVE; else States st=States.values(); for(int i=0;irec.length;i+) if(reci.contains(me.getPoint() current=sti; this.setCursor(sti.getCursor(); return; this.setCursor(cs); current=States.DEFAULT; public void mouseE

31、xited(MouseEvent me) public void mouseEntered(MouseEvent me) public void mouseDragged(MouseEvent me) int x=me.getX(); int y=me.getY(); / 分別處理一系列的(光標(biāo))狀態(tài)(枚舉值) if(current=States.MOVE) startX+=(x-tempX); startY+=(y-tempY); endX+=(x-tempX); endY+=(y-tempY); tempX=x; tempY=y; else if(current=States.EAST|c

32、urrent=States.WEST) if(currentX=START_X) startX+=(x-tempX); tempX=x; else endX+=(x-tempX); tempX=x; else if(current=States.NORTH|current=States.SOUTH) if(currentY=START_Y) startY+=(y-tempY); tempY=y; else endY+=(y-tempY); tempY=y; else if(current=States.NORTH_EAST|current=States.NORTH_EAST| current=

33、States.SOUTH_EAST|current=States.SOUTH_WEST) if(currentY=START_Y) startY+=(y-tempY); tempY=y; else endY+=(y-tempY); tempY=y; if(currentX=START_X) startX+=(x-tempX); tempX=x; else endX+=(x-tempX); tempX=x; else startX=tempX; startY=tempY; endX=me.getX(); endY=me.getY(); this.repaint(); public void mo

34、usePressed(MouseEvent me) showTip=false; tempX=me.getX(); tempY=me.getY(); public void mouseReleased(MouseEvent me) if(me.isPopupTrigger() / 右鍵 if(current=States.MOVE) showTip=true; p=me.getPoint(); startX=0; startY=0; endX=0; endY=0; repaint(); else / 普通情況 jf.dispose(); updates(); public void mouse

35、Clicked(MouseEvent me) if(me.getClickCount()=2) /Rectangle rec=new Rectangle(startX,startY,Math.abs(endX-startX),Math.abs(endY-startY); Point p=me.getPoint(); if(select.contains(p) if(select.x+select.widththis.getWidth()&select.y+select.height=this.getWidth() wid=this.getWidth()-select.x; if(select.

36、y+select.height=this.getHeight() het=this.getHeight()-select.y; get=bi.getSubimage(select.x,select.y,wid,het); jf.dispose(); updates(); 鼠標(biāo)坐標(biāo)的選取,通過鼠標(biāo)移動(dòng)來(lái)取得當(dāng)前鼠標(biāo)位置代碼如下:/根據(jù)東南西北等八個(gè)方向決定選中的要修改的X和Y的座標(biāo) private void initSelect(States state) switch(state) case DEFAULT: currentX=0; currentY=0; break; case EAST:

37、currentX=(endXstartX?END_X:START_X); currentY=0; break; case WEST: currentX=(endXstartX?START_X:END_X); currentY=0; break; case NORTH: currentX=0; currentY=(startYendY?END_Y:START_Y); break; case SOUTH: currentX=0; currentY=(startYendY?START_Y:END_Y); break; case NORTH_EAST: currentY=(startYendY?END

38、_Y:START_Y); currentX=(endXstartX?END_X:START_X); break; case NORTH_WEST: currentY=(startYendY?END_Y:START_Y); currentX=(endXstartX?START_X:END_X); break; case SOUTH_EAST: currentY=(startYendY?START_Y:END_Y); currentX=(endXstartX?END_X:START_X); break; case SOUTH_WEST: currentY=(startYendY?START_Y:E

39、ND_Y); currentX=(endXstartX?START_X:END_X); break; default: currentX=0; currentY=0; break; 截圖截面如圖3所示: 圖3 截圖展示界面顯示圖像窗體的實(shí)現(xiàn): /一個(gè)臨時(shí)類,用于顯示當(dāng)前的屏幕圖像 private class Temp extends JPanel implements MouseListener,MouseMotionListener private BufferedImage bi; private int width,height; private int startX,startY,en

40、dX,endY,tempX,tempY; private JFrame jf; private Rectangle select=new Rectangle(0,0,0,0);/表示選中的區(qū)域 private Cursor cs=new Cursor(Cursor.CROSSHAIR_CURSOR);/表示一般情況下的鼠標(biāo)狀態(tài)(十字線) private States current=States.DEFAULT;/ 表示當(dāng)前的編輯狀態(tài) private Rectangle rec;/表示八個(gè)編輯點(diǎn)的區(qū)域 /下面四個(gè)常量,分別表示誰(shuí)是被選中的那條線上的端點(diǎn) public static final

41、int START_X=1; public static final int START_Y=2; public static final int END_X=3; public static final int END_Y=4; private int currentX,currentY;/當(dāng)前被選中的X和Y,只有這兩個(gè)需要改變 private Point p=new Point();/當(dāng)前鼠標(biāo)移的地點(diǎn) private boolean showTip=true;/是否顯示提示.如果鼠標(biāo)左鍵一按,則提示就不再顯示了 public Temp(JFrame jf,BufferedImage bi,

42、int width,int height) this.jf=jf; this.bi=bi; this.width=width; this.height=height; this.addMouseListener(this); this.addMouseMotionListener(this); initRecs(); private void initRecs() rec=new Rectangle8; for(int i=0;irec.length;i+) reci=new Rectangle(); public void paintComponent(Graphics g) g.drawImage(bi,0,0,width,height,this); g.setColor(Color.RED); g.drawLin

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論