日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java robot 控制 不用用户 界面_编写一个基于Java Robot类的屏幕捕获工具

發布時間:2024/1/23 java 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java robot 控制 不用用户 界面_编写一个基于Java Robot类的屏幕捕获工具 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

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

注意:現在你可以使用在線開發工具DevSquare編譯和運行Java Fun and Games中提供的applet。DevSquare入門請閱讀資源中提供的用戶向導。

java.awt.Robot類為娛樂功能提供了一些有用的方法。其中一個包括了建立屏幕捕獲工具的功能。Java Fun and Games給出了一個使用Robot捕獲主屏幕設備內容的工具。

這一部分從我以前的幾部分中分離出來了,因為它并不是集中在applet實現上。這篇文章以Swing應用的形式實現了屏幕捕獲工具。從GUI觀點介紹完這個應用之后,我將解釋實現的關鍵部分。

版權聲明:任何獲得Matrix授權的網站,轉載時請務必保留以下作者信息和鏈接

作者:Jeff Friesen;mydeman

原文:

Matrix:

關鍵字:Java Robot;捕獲屏幕

應用程序GUI

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

圖 1. 紅白相間的虛線所形成的矩形表示了當前選中的區域

Capture的GUI由菜單欄和顯示捕獲圖像的可滾動窗口組成。如圖1所示,選擇矩形(通過拖拽鼠標)表示了捕獲圖形的一個矩形區域。

菜單欄提供了File和Capture菜單:

---File提供Save As…(另存為)和Exit(退出)菜單項,可以通過文件選擇器保存當前捕獲為一個jpeg文件,和退出Capture。盡管你可以直接選擇這些菜單項,但是你會發現使用它們的快捷鍵Alt-S和Alt-X會更加方便。

---Capture提供Capture(捕獲)和Crop(修剪)菜單項,可以捕獲當前主屏幕設備的內容和修剪一個圖像為選擇矩形的內容。和File菜單項一樣,這些菜單項也有它們自己的方便的快捷鍵:Capture(Alt-C)和Crop(Alt-K)。

應用實現

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

機器人屏幕捕獲

為了使用Robot類捕獲屏幕,Capture必須先創建一個Robot對象。Capture類的public static void main(String [] args)方法嘗試調用Robot的public Robot()構造函數來創建這個對象。如果創建成功,就會返回一個針對主屏幕設備坐標系的Robot引用。如果平臺不支持低級控制(在沒有屏幕設備的環境這是成立的),將會拋出java.awt.AWTException。如果平臺不允許創建Robot對象就會拋出java.lang.SecurityException。但愿你不會再遇到其他異常。

假設Robot對象已被創建,main()調用Capture類的構造函數創建一個GUI。作為GUI創建的一部分,Capture通過調用dimScreenSize = Toolkit.getDefaultToolkit().getScreenSize();獲得主屏幕設備的尺寸。因為用來顯示屏幕捕獲的內容的Robot的public BufferedImage createScreenCapture(Rectangle screenRect)方法,需要一個java.awt.Rectangle參數,所以構造函數通過rectScreenSize = new Rectangle(dimScreenSize);將java.awt.Dimension對象轉換為一個Rectangle對象。當Capture菜單項的動作監聽器被調用時,下面摘錄的Capture.java片斷就會調用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);

你不希望Capture的GUI遮住你想要捕獲的任何內容。這就是為什么代碼中隱藏Capture GUI優先級高于完成捕獲。在獲取了包含屏幕像素copy的java.awt.image.BufferedImage后,代碼片斷顯示出GUI,并且通過圖像區域組件顯示出BufferedImage的內容。

[1]

【責編:Peng】

--------------------next---------------------

總結

以上是生活随笔為你收集整理的java robot 控制 不用用户 界面_编写一个基于Java Robot类的屏幕捕获工具的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。