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

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

編寫一個(gè)基于Java Robot類的屏幕捕獲工具

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

    java Fun and Games(Java娛樂和游戲)提供了通過Java的Robot類捕捉主屏幕設(shè)備的功能,并且可以將整個(gè)屏幕或者選定的一部分保存為jpeg文件。這篇文章以Swing應(yīng)用的形式實(shí)現(xiàn)了屏幕捕捉工具。

    Java Fun and Games(Java娛樂和游戲)提供了通過Java的Robot類捕捉主屏幕設(shè)備的功能,并且可以將整個(gè)屏幕或者選定的一部分保存為jpeg文件。

    注重:現(xiàn)在你可以使用在線開發(fā)工具DevSquare編譯和運(yùn)行Java Fun and Games中提供的applet。DevSquare入門請(qǐng)閱讀資源中提供的用戶向?qū)А?br />
    java.awt.Robot類為娛樂功能提供了一些有用的方法。其中一個(gè)包括了建立屏幕捕捉工具的功能。Java Fun and Games給出了一個(gè)使用Robot捕捉主屏幕設(shè)備內(nèi)容的工具。

    這一部分從我以前的幾部分中分離出來了,因?yàn)樗⒉皇羌性赼pplet實(shí)現(xiàn)上。這篇文章以Swing應(yīng)用的形式實(shí)現(xiàn)了屏幕捕捉工具。從GUI觀點(diǎn)介紹完這個(gè)應(yīng)用之后,我將解釋實(shí)現(xiàn)的要害部分。

版權(quán)聲明:任何獲得Matrix授權(quán)的網(wǎng)站,轉(zhuǎn)載時(shí)請(qǐng)務(wù)必保留以下作者信息和鏈接
作者:Jeff Friesen;mydeman
原文:http://www.javaworld.com/javaworld/jw-04-2006/jw-0424-funandgames.Html
Matrix:http://www.matrix.org.cn/resource/article/2006-09-15/Java+Robot_f9598e5e-445b-11db-af0b-0f766c077b58.html
要害字:Java Robot;捕捉屏幕

應(yīng)用程序GUI
    我的Capture程序提供了一個(gè)圖形用戶界面(GUI,Graphic User Interface),通過它你可以選擇捕捉圖像的一部分,修剪圖像到選擇內(nèi)容,以及將結(jié)果圖像保存為jpeg文件。圖1顯示了包含一個(gè)捕捉示例的Capture的GUI。

編寫一個(gè)基于Java Robot類的屏幕捕捉工具(圖一)
圖 1. 紅白相間的虛線所形成的矩形表示了當(dāng)前選中的區(qū)域

    Capture的GUI由菜單欄和顯示捕捉圖像的可滾動(dòng)窗口組成。如圖1所示,選擇矩形(通過拖拽鼠標(biāo))表示了捕捉圖形的一個(gè)矩形區(qū)域。

    菜單欄提供了File和Capture菜單:
---File提供Save As…(另存為)和Exit(退出)菜單項(xiàng),可以通過文件選擇器保存當(dāng)前捕捉為一個(gè)jpeg文件,和退出Capture。盡管你可以直接選擇這些菜單項(xiàng),但是你會(huì)發(fā)現(xiàn)使用它們的快捷鍵Alt-S和Alt-X會(huì)更加方便。
---Capture提供Capture(捕捉)和Crop(修剪)菜單項(xiàng),可以捕捉當(dāng)前主屏幕設(shè)備的內(nèi)容和修剪一個(gè)圖像為選擇矩形的內(nèi)容。和File菜單項(xiàng)一樣,這些菜單項(xiàng)也有它們自己的方便的快捷鍵:Capture(Alt-C)和Crop(Alt-K)。

應(yīng)用實(shí)現(xiàn)

    有三個(gè)源文件來描述Capture的GUI:Capture.java(啟動(dòng)應(yīng)用程序和構(gòu)造GUI)、ImageArea.java( 描述了一個(gè)用來顯示捕捉的內(nèi)容的組件,你也可以在其中選擇捕捉的一部分或修剪捕捉的內(nèi)容)和ImageFileFilter.java(限制文件選擇器的選擇是文件夾和jpeg文件)。在這一部分下面,我從這些源文件中摘錄了一些代碼片斷來說明Capture的工作過程。

機(jī)器人屏幕捕捉
    為了使用Robot類捕捉屏幕,Capture必須先創(chuàng)建一個(gè)Robot對(duì)象。Capture類的public static void main(String [] args)方法嘗試調(diào)用Robot的public Robot()構(gòu)造函數(shù)來創(chuàng)建這個(gè)對(duì)象。假如創(chuàng)建成功,就會(huì)返回一個(gè)針對(duì)主屏幕設(shè)備坐標(biāo)系的Robot引用。假如平臺(tái)不支持低級(jí)控制(在沒有屏幕設(shè)備的環(huán)境這是成立的),將會(huì)拋出java.awt.AWTException。假如平臺(tái)不答應(yīng)創(chuàng)建Robot對(duì)象就會(huì)拋出java.lang.SecurityException。但愿你不會(huì)再碰到其他異常。

    假設(shè)Robot對(duì)象已被創(chuàng)建,main()調(diào)用Capture類的構(gòu)造函數(shù)創(chuàng)建一個(gè)GUI。作為GUI創(chuàng)建的一部分,Capture通過調(diào)用dimScreenSize = Toolkit.getDefaultToolkit().getScreenSize();獲得主屏幕設(shè)備的尺寸。因?yàn)橛脕盹@示屏幕捕捉的內(nèi)容的Robot的public BufferedImage createScreenCapture(Rectangle screenRect)方法,需要一個(gè)java.awt.Rectangle參數(shù),所以構(gòu)造函數(shù)通過rectScreenSize = new Rectangle(dimScreenSize);將java.awt.Dimension對(duì)象轉(zhuǎn)換為一個(gè)Rectangle對(duì)象。當(dāng)Capture菜單項(xiàng)的動(dòng)作監(jiān)聽器被調(diào)用時(shí),下面摘錄的Capture.java片斷就會(huì)調(diào)用createScreenCapture()。

// Hide Capture's main window so that it does not appear in
// the screen capture.

setVisible (false);

// Perform the screen capture.

BufferedImage biScreen;
biScreen = robot.createScreenCapture (rectScreenSize);

// Show Capture's main window for continued user interaction.

setVisible (true);

// Update ImageArea component with the new image and adjust
// the scrollbars.

ia.setImage (biScreen);

jsp.getHorizontalScrollBar ().setValue (0);
jsp.getVerticalScrollBar ().setValue (0);



發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 连平县| 太湖县| 瓦房店市| 偃师市| 衡东县| 韶山市| 新巴尔虎右旗| 滨海县| 新巴尔虎右旗| 阿坝| 莱阳市| 常宁市| 铜陵市| 扎赉特旗| 舟山市| 抚顺县| 新营市| 昌都县| 哈巴河县| 岚皋县| 德惠市| 蒙阴县| 玉龙| 藁城市| 鹰潭市| 嘉禾县| 白沙| 重庆市| 景泰县| 宽甸| 嘉黎县| 香格里拉县| 育儿| 桑植县| 临安市| 大洼县| 宜都市| 调兵山市| 互助| 仪征市| 顺昌县|