java中Robot
生活随笔
收集整理的這篇文章主要介紹了
java中Robot
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
用者本身這個(gè)系統(tǒng)事件,或根據(jù)使用者的需要(例如程序需要自動(dòng)展示一些功能等)來(lái)控制鼠標(biāo)或鍵盤。?
在?Robot?這個(gè)類中產(chǎn)生的事件有別于在AWT元件中的事件,在AWT?元件中的事件(例如?MouseEvent、KeyEvent等)會(huì)被放置在?AWT的事件隊(duì)列中等候處理。但您用?Robot?這個(gè)類別所產(chǎn)生的事件,則會(huì)被放置在操作系統(tǒng)的事件隊(duì)列中等候處理。例如,當(dāng)你用了?Robot?中的?Robot.mouseMove()?這個(gè)方法,就表示真的讓您的鼠標(biāo)移動(dòng)了,而不像?AWT?事件中只是產(chǎn)生鼠標(biāo)移動(dòng)的事件而已。?
在這里要注意的是,由于?Robot?產(chǎn)生了一些較低階的控制,所以一旦當(dāng)前系統(tǒng)不允許您從事這些控制時(shí),就會(huì)發(fā)出?AWTException?這個(gè)例程來(lái)通知您。? </ td > ? < td?width = " 267 " ?align = " right " > ? </ td > ? </ tr > ? </ table > ?
import ?java.awt. * ;?
import ?java.awt.event. * ;?
public ? class ?example1? ... {?
Robot?robot=null;?
void?initial()?...{?
try?...{?
//?產(chǎn)生一個(gè)?Robot?類別的物件?
robot?=?new?Robot();?
}catch?(AWTException?ex)?...{}?
}?
void?start()?...{?
//?一開始希望鼠標(biāo)移動(dòng)到的座標(biāo)?
int?initX?=?30,?initY?=?10;?
//然后希望移動(dòng)到的鼠標(biāo)座標(biāo)?
int?disX?=?120,?disY?=?20;?
//?目前鼠標(biāo)的位置座標(biāo)?
int?mouseX,?mouseY;?
mouseX?=?initX;?
mouseY?=?initY;?
//?延遲了?3?秒鐘?
robot.delay(3000);?
//?移動(dòng)到?左上角第一個(gè)圖標(biāo)的位置?
robot.mouseMove(30,10);?
//?鼠標(biāo)按下了鼠標(biāo)右鍵?
robot.mousePress(InputEvent.BUTTON3_MASK);?
//?鼠標(biāo)放開所按下的右鍵?
robot.mouseRelease(InputEvent.BUTTON3_MASK);?
//?停留?1?秒鐘?
robot.delay(1000);?
//?鼠標(biāo)移動(dòng)到“打開”的位置?
for(int?i?=?0?;?mouseX?<?disX?;?i++)?...{?
mouseX?=?mouseX?+?i;?
robot.mouseMove(mouseX,?mouseY);?
robot.delay(50);?
}?
for(int?j?=?0?;?mouseY?<?disY?;?j++)?...{?
mouseY?=?mouseY?+?j;?
robot.mouseMove(mouseX,?mouseY);?
robot.delay(50);?
}?
//?停留?1?秒鐘后按下左鍵?
robot.delay(1000);?
robot.mousePress(java.awt.event.InputEvent.BUTTON1_MASK);?
robot.mouseRelease(InputEvent.BUTTON1_MASK);?
}?
public?static?void?main(String[]?args)?...{?
example1?ex=new?example1();?
ex.initial();?
ex.start();?
System.exit(0);?
}?
} ?
在Robot類中有一個(gè)比較特殊的method:?
BufferedImage?createScreenCapture(Rectangle?screenRect)?
顧名思義,當(dāng)我們使用這個(gè)這個(gè)method?時(shí),就會(huì)建立一張影像,而這張影像中存的的則是我們從屏幕擷取出來(lái)的像素(pixel)。而使用這個(gè)method,就會(huì)傳回一個(gè)BufferedImage類的對(duì)象,我們可以根據(jù)我們的需要來(lái)對(duì)它進(jìn)行處理。下面是個(gè)簡(jiǎn)單的范例,在這個(gè)范例中,程序會(huì)在使用者希望停留的秒數(shù)鐘后截取屏幕,并將文件用jpg格式保存。?
/**/ /*?
*?@(#)ScreenCapture.java?2001/09/24?
*?Usage:?java?ScreenCapture?[-d?seconds]?[-f?filename]?
*?@Author?
*?Cheng-Yu?Chang?
*?@License?
*?GPL(GNU?GENERAL?PUBLIC?LICENSE)?
*?http://www.gnu.org/copyleft/gpl.html?
*/ ?
import ?java.awt. * ;?
import ?java.awt.image. * ;?
import ?java.io. * ;?
import ?com.sun.image.codec.jpeg.JPEGCodec;?
import ?com.sun.image.codec.jpeg.JPEGImageEncoder;?
public ? class ?ScreenCapture? ... {?
public?static?void?ScreenCapture(int?seconds,?String?filename)?...{?
Robot?robot?=?null;?
//?產(chǎn)生?Robot?物件,記著要?catch?AWTException?
try?...{?
robot?=new?Robot();?
//?延遲使用者輸入的秒數(shù)?
robot.delay(seconds);?
//?將截取的image轉(zhuǎn)換成jpg格式?
OutputStream?f?=?new?FileOutputStream(filename);?
JPEGImageEncoder?encoder?=?JPEGCodec.createJPEGEncoder(f);?
encoder.encode(robot.createScreenCapture(new?Rectangle(Toolkit.getDefaultToolkit().getScreenSize())));?
f.close();?
}catch(AWTException?e1)?...{}?
catch(IOException?e2)?...{}?
}?
//?使用說(shuō)明?
private?static?void?usage()?...{?
System.out.println("Usage:?java?ScreenCapture?[-d?seconds]?[-f?filename]");?
System.out.println(" -d?Seconds?to?delay?before?capturing?screen");?
System.out.println(" -f?JPG?filename?to?save");?
System.exit(0);?
}?
public?static?void?main(String?args[])?...{?
int?s?=?0;?
String?filename?=?"ScreenCapture.jpg";?
//?判定輸入的參數(shù)?
if?(args.length?==?0)?
usage();?
else?...{?
for?(int?i?=?0?;?i?<?args.length?;?i++)?...{?
if?(args[i].startsWith("-"))?...{?
if?(args[i].equals("-d"))?...{?
if?(i?<?args.length?-?1)?
s?=?Integer.parseInt(args[++i]);?
else?
usage();?
}?
if?(args[i].equals("-f"))?...{?
if?(i?<?args.length?-?1)?
filename?=?args[++i];?
else?
usage();?
}?
}else?
usage();?
}?
}?
ScreenCapture(s?*?1000,?filename);?
System.exit(0);?
}?
使用者本身這個(gè)系統(tǒng)事件,或根據(jù)使用者的需要(例如程序需要自動(dòng)展示一些功能等)來(lái)控制鼠標(biāo)或鍵盤。?
在?Robot?這個(gè)類中產(chǎn)生的事件有別于在AWT元件中的事件,在AWT?元件中的事件(例如?MouseEvent、KeyEvent等)會(huì)被放置在?AWT的事件隊(duì)列中等候處理。但您用?Robot?這個(gè)類別所產(chǎn)生的事件,則會(huì)被放置在操作系統(tǒng)的事件隊(duì)列中等候處理。例如,當(dāng)你用了?Robot?中的?Robot.mouseMove()?這個(gè)方法,就表示真的讓您的鼠標(biāo)移動(dòng)了,而不像?AWT?事件中只是產(chǎn)生鼠標(biāo)移動(dòng)的事件而已。?
在這里要注意的是,由于?Robot?產(chǎn)生了一些較低階的控制,所以一旦當(dāng)前系統(tǒng)不允許您從事這些控制時(shí),就會(huì)發(fā)出?AWTException?這個(gè)例程來(lái)通知您。?</td>?<td?width="267"?align="right">?</td>?</tr>?</table>?
import?java.awt.*;?
import?java.awt.event.*;?
public?class?example1?...{?
Robot?robot=null;?
void?initial()?...{?
try?...{?
//?產(chǎn)生一個(gè)?Robot?類別的物件?
robot?=?new?Robot();?
}catch?(AWTException?ex)?...{}?
}?
void?start()?...{?
//?一開始希望鼠標(biāo)移動(dòng)到的座標(biāo)?
int?initX?=?30,?initY?=?10;?
//然后希望移動(dòng)到的鼠標(biāo)座標(biāo)?
int?disX?=?120,?disY?=?20;?
//?目前鼠標(biāo)的位置座標(biāo)?
int?mouseX,?mouseY;?
mouseX?=?initX;?
mouseY?=?initY;?
//?延遲了?3?秒鐘?
robot.delay(3000);?
//?移動(dòng)到?左上角第一個(gè)圖標(biāo)的位置?
robot.mouseMove(30,10);?
//?鼠標(biāo)按下了鼠標(biāo)右鍵?
robot.mousePress(InputEvent.BUTTON3_MASK);?
//?鼠標(biāo)放開所按下的右鍵?
robot.mouseRelease(InputEvent.BUTTON3_MASK);?
//?停留?1?秒鐘?
robot.delay(1000);?
//?鼠標(biāo)移動(dòng)到“打開”的位置?
for(int?i?=?0?;?mouseX?<?disX?;?i++)?...{?
mouseX?=?mouseX?+?i;?
robot.mouseMove(mouseX,?mouseY);?
robot.delay(50);?
}?
for(int?j?=?0?;?mouseY?<?disY?;?j++)?...{?
mouseY?=?mouseY?+?j;?
robot.mouseMove(mouseX,?mouseY);?
robot.delay(50);?
}?
//?停留?1?秒鐘后按下左鍵?
robot.delay(1000);?
robot.mousePress(java.awt.event.InputEvent.BUTTON1_MASK);?
robot.mouseRelease(InputEvent.BUTTON1_MASK);?
}?
public?static?void?main(String[]?args)?...{?
example1?ex=new?example1();?
ex.initial();?
ex.start();?
System.exit(0);?
}?
}?
在Robot類中有一個(gè)比較特殊的method:?
BufferedImage?createScreenCapture(Rectangle?screenRect)?
顧名思義,當(dāng)我們使用這個(gè)這個(gè)method?時(shí),就會(huì)建立一張影像,而這張影像中存的的則是我們從屏幕擷取出來(lái)的像素(pixel)。而使用這個(gè)method,就會(huì)傳回一個(gè)BufferedImage類的對(duì)象,我們可以根據(jù)我們的需要來(lái)對(duì)它進(jìn)行處理。下面是個(gè)簡(jiǎn)單的范例,在這個(gè)范例中,程序會(huì)在使用者希望停留的秒數(shù)鐘后截取屏幕,并將文件用jpg格式保存。?
/**//*?
*?@(#)ScreenCapture.java?2001/09/24?
*?Usage:?java?ScreenCapture?[-d?seconds]?[-f?filename]?
*?@Author?
*?Cheng-Yu?Chang?
*?@License?
*?GPL(GNU?GENERAL?PUBLIC?LICENSE)?
*?http://www.gnu.org/copyleft/gpl.html?
*/?
import?java.awt.*;?
import?java.awt.image.*;?
import?java.io.*;?
import?com.sun.image.codec.jpeg.JPEGCodec;?
import?com.sun.image.codec.jpeg.JPEGImageEncoder;?
public?class?ScreenCapture?...{?
public?static?void?ScreenCapture(int?seconds,?String?filename)?...{?
Robot?robot?=?null;?
//?產(chǎn)生?Robot?物件,記著要?catch?AWTException?
try?...{?
robot?=new?Robot();?
//?延遲使用者輸入的秒數(shù)?
robot.delay(seconds);?
//?將截取的image轉(zhuǎn)換成jpg格式?
OutputStream?f?=?new?FileOutputStream(filename);?
JPEGImageEncoder?encoder?=?JPEGCodec.createJPEGEncoder(f);?
encoder.encode(robot.createScreenCapture(new?Rectangle(Toolkit.getDefaultToolkit().getScreenSize())));?
f.close();?
}catch(AWTException?e1)?...{}?
catch(IOException?e2)?...{}?
}?
//?使用說(shuō)明?
private?static?void?usage()?...{?
System.out.println("Usage:?java?ScreenCapture?[-d?seconds]?[-f?filename]");?
System.out.println(" -d?Seconds?to?delay?before?capturing?screen");?
System.out.println(" -f?JPG?filename?to?save");?
System.exit(0);?
}?
public?static?void?main(String?args[])?...{?
int?s?=?0;?
String?filename?=?"ScreenCapture.jpg";?
//?判定輸入的參數(shù)?
if?(args.length?==?0)?
usage();?
else?...{?
for?(int?i?=?0?;?i?<?args.length?;?i++)?...{?
if?(args[i].startsWith("-"))?...{?
if?(args[i].equals("-d"))?...{?
if?(i?<?args.length?-?1)?
s?=?Integer.parseInt(args[++i]);?
else?
usage();?
}?
if?(args[i].equals("-f"))?...{?
if?(i?<?args.length?-?1)?
filename?=?args[++i];?
else?
usage();?
}?
}else?
usage();?
}?
}?
ScreenCapture(s?*?1000,?filename);?
System.exit(0);?
}?
在?Robot?這個(gè)類中產(chǎn)生的事件有別于在AWT元件中的事件,在AWT?元件中的事件(例如?MouseEvent、KeyEvent等)會(huì)被放置在?AWT的事件隊(duì)列中等候處理。但您用?Robot?這個(gè)類別所產(chǎn)生的事件,則會(huì)被放置在操作系統(tǒng)的事件隊(duì)列中等候處理。例如,當(dāng)你用了?Robot?中的?Robot.mouseMove()?這個(gè)方法,就表示真的讓您的鼠標(biāo)移動(dòng)了,而不像?AWT?事件中只是產(chǎn)生鼠標(biāo)移動(dòng)的事件而已。?
在這里要注意的是,由于?Robot?產(chǎn)生了一些較低階的控制,所以一旦當(dāng)前系統(tǒng)不允許您從事這些控制時(shí),就會(huì)發(fā)出?AWTException?這個(gè)例程來(lái)通知您。? </ td > ? < td?width = " 267 " ?align = " right " > ? </ td > ? </ tr > ? </ table > ?
import ?java.awt. * ;?
import ?java.awt.event. * ;?
public ? class ?example1? ... {?
Robot?robot=null;?
void?initial()?...{?
try?...{?
//?產(chǎn)生一個(gè)?Robot?類別的物件?
robot?=?new?Robot();?
}catch?(AWTException?ex)?...{}?
}?
void?start()?...{?
//?一開始希望鼠標(biāo)移動(dòng)到的座標(biāo)?
int?initX?=?30,?initY?=?10;?
//然后希望移動(dòng)到的鼠標(biāo)座標(biāo)?
int?disX?=?120,?disY?=?20;?
//?目前鼠標(biāo)的位置座標(biāo)?
int?mouseX,?mouseY;?
mouseX?=?initX;?
mouseY?=?initY;?
//?延遲了?3?秒鐘?
robot.delay(3000);?
//?移動(dòng)到?左上角第一個(gè)圖標(biāo)的位置?
robot.mouseMove(30,10);?
//?鼠標(biāo)按下了鼠標(biāo)右鍵?
robot.mousePress(InputEvent.BUTTON3_MASK);?
//?鼠標(biāo)放開所按下的右鍵?
robot.mouseRelease(InputEvent.BUTTON3_MASK);?
//?停留?1?秒鐘?
robot.delay(1000);?
//?鼠標(biāo)移動(dòng)到“打開”的位置?
for(int?i?=?0?;?mouseX?<?disX?;?i++)?...{?
mouseX?=?mouseX?+?i;?
robot.mouseMove(mouseX,?mouseY);?
robot.delay(50);?
}?
for(int?j?=?0?;?mouseY?<?disY?;?j++)?...{?
mouseY?=?mouseY?+?j;?
robot.mouseMove(mouseX,?mouseY);?
robot.delay(50);?
}?
//?停留?1?秒鐘后按下左鍵?
robot.delay(1000);?
robot.mousePress(java.awt.event.InputEvent.BUTTON1_MASK);?
robot.mouseRelease(InputEvent.BUTTON1_MASK);?
}?
public?static?void?main(String[]?args)?...{?
example1?ex=new?example1();?
ex.initial();?
ex.start();?
System.exit(0);?
}?
} ?
在Robot類中有一個(gè)比較特殊的method:?
BufferedImage?createScreenCapture(Rectangle?screenRect)?
顧名思義,當(dāng)我們使用這個(gè)這個(gè)method?時(shí),就會(huì)建立一張影像,而這張影像中存的的則是我們從屏幕擷取出來(lái)的像素(pixel)。而使用這個(gè)method,就會(huì)傳回一個(gè)BufferedImage類的對(duì)象,我們可以根據(jù)我們的需要來(lái)對(duì)它進(jìn)行處理。下面是個(gè)簡(jiǎn)單的范例,在這個(gè)范例中,程序會(huì)在使用者希望停留的秒數(shù)鐘后截取屏幕,并將文件用jpg格式保存。?
/**/ /*?
*?@(#)ScreenCapture.java?2001/09/24?
*?Usage:?java?ScreenCapture?[-d?seconds]?[-f?filename]?
*?@Author?
*?Cheng-Yu?Chang?
*?@License?
*?GPL(GNU?GENERAL?PUBLIC?LICENSE)?
*?http://www.gnu.org/copyleft/gpl.html?
*/ ?
import ?java.awt. * ;?
import ?java.awt.image. * ;?
import ?java.io. * ;?
import ?com.sun.image.codec.jpeg.JPEGCodec;?
import ?com.sun.image.codec.jpeg.JPEGImageEncoder;?
public ? class ?ScreenCapture? ... {?
public?static?void?ScreenCapture(int?seconds,?String?filename)?...{?
Robot?robot?=?null;?
//?產(chǎn)生?Robot?物件,記著要?catch?AWTException?
try?...{?
robot?=new?Robot();?
//?延遲使用者輸入的秒數(shù)?
robot.delay(seconds);?
//?將截取的image轉(zhuǎn)換成jpg格式?
OutputStream?f?=?new?FileOutputStream(filename);?
JPEGImageEncoder?encoder?=?JPEGCodec.createJPEGEncoder(f);?
encoder.encode(robot.createScreenCapture(new?Rectangle(Toolkit.getDefaultToolkit().getScreenSize())));?
f.close();?
}catch(AWTException?e1)?...{}?
catch(IOException?e2)?...{}?
}?
//?使用說(shuō)明?
private?static?void?usage()?...{?
System.out.println("Usage:?java?ScreenCapture?[-d?seconds]?[-f?filename]");?
System.out.println(" -d?Seconds?to?delay?before?capturing?screen");?
System.out.println(" -f?JPG?filename?to?save");?
System.exit(0);?
}?
public?static?void?main(String?args[])?...{?
int?s?=?0;?
String?filename?=?"ScreenCapture.jpg";?
//?判定輸入的參數(shù)?
if?(args.length?==?0)?
usage();?
else?...{?
for?(int?i?=?0?;?i?<?args.length?;?i++)?...{?
if?(args[i].startsWith("-"))?...{?
if?(args[i].equals("-d"))?...{?
if?(i?<?args.length?-?1)?
s?=?Integer.parseInt(args[++i]);?
else?
usage();?
}?
if?(args[i].equals("-f"))?...{?
if?(i?<?args.length?-?1)?
filename?=?args[++i];?
else?
usage();?
}?
}else?
usage();?
}?
}?
ScreenCapture(s?*?1000,?filename);?
System.exit(0);?
}?
使用者本身這個(gè)系統(tǒng)事件,或根據(jù)使用者的需要(例如程序需要自動(dòng)展示一些功能等)來(lái)控制鼠標(biāo)或鍵盤。?
在?Robot?這個(gè)類中產(chǎn)生的事件有別于在AWT元件中的事件,在AWT?元件中的事件(例如?MouseEvent、KeyEvent等)會(huì)被放置在?AWT的事件隊(duì)列中等候處理。但您用?Robot?這個(gè)類別所產(chǎn)生的事件,則會(huì)被放置在操作系統(tǒng)的事件隊(duì)列中等候處理。例如,當(dāng)你用了?Robot?中的?Robot.mouseMove()?這個(gè)方法,就表示真的讓您的鼠標(biāo)移動(dòng)了,而不像?AWT?事件中只是產(chǎn)生鼠標(biāo)移動(dòng)的事件而已。?
在這里要注意的是,由于?Robot?產(chǎn)生了一些較低階的控制,所以一旦當(dāng)前系統(tǒng)不允許您從事這些控制時(shí),就會(huì)發(fā)出?AWTException?這個(gè)例程來(lái)通知您。?</td>?<td?width="267"?align="right">?</td>?</tr>?</table>?
import?java.awt.*;?
import?java.awt.event.*;?
public?class?example1?...{?
Robot?robot=null;?
void?initial()?...{?
try?...{?
//?產(chǎn)生一個(gè)?Robot?類別的物件?
robot?=?new?Robot();?
}catch?(AWTException?ex)?...{}?
}?
void?start()?...{?
//?一開始希望鼠標(biāo)移動(dòng)到的座標(biāo)?
int?initX?=?30,?initY?=?10;?
//然后希望移動(dòng)到的鼠標(biāo)座標(biāo)?
int?disX?=?120,?disY?=?20;?
//?目前鼠標(biāo)的位置座標(biāo)?
int?mouseX,?mouseY;?
mouseX?=?initX;?
mouseY?=?initY;?
//?延遲了?3?秒鐘?
robot.delay(3000);?
//?移動(dòng)到?左上角第一個(gè)圖標(biāo)的位置?
robot.mouseMove(30,10);?
//?鼠標(biāo)按下了鼠標(biāo)右鍵?
robot.mousePress(InputEvent.BUTTON3_MASK);?
//?鼠標(biāo)放開所按下的右鍵?
robot.mouseRelease(InputEvent.BUTTON3_MASK);?
//?停留?1?秒鐘?
robot.delay(1000);?
//?鼠標(biāo)移動(dòng)到“打開”的位置?
for(int?i?=?0?;?mouseX?<?disX?;?i++)?...{?
mouseX?=?mouseX?+?i;?
robot.mouseMove(mouseX,?mouseY);?
robot.delay(50);?
}?
for(int?j?=?0?;?mouseY?<?disY?;?j++)?...{?
mouseY?=?mouseY?+?j;?
robot.mouseMove(mouseX,?mouseY);?
robot.delay(50);?
}?
//?停留?1?秒鐘后按下左鍵?
robot.delay(1000);?
robot.mousePress(java.awt.event.InputEvent.BUTTON1_MASK);?
robot.mouseRelease(InputEvent.BUTTON1_MASK);?
}?
public?static?void?main(String[]?args)?...{?
example1?ex=new?example1();?
ex.initial();?
ex.start();?
System.exit(0);?
}?
}?
在Robot類中有一個(gè)比較特殊的method:?
BufferedImage?createScreenCapture(Rectangle?screenRect)?
顧名思義,當(dāng)我們使用這個(gè)這個(gè)method?時(shí),就會(huì)建立一張影像,而這張影像中存的的則是我們從屏幕擷取出來(lái)的像素(pixel)。而使用這個(gè)method,就會(huì)傳回一個(gè)BufferedImage類的對(duì)象,我們可以根據(jù)我們的需要來(lái)對(duì)它進(jìn)行處理。下面是個(gè)簡(jiǎn)單的范例,在這個(gè)范例中,程序會(huì)在使用者希望停留的秒數(shù)鐘后截取屏幕,并將文件用jpg格式保存。?
/**//*?
*?@(#)ScreenCapture.java?2001/09/24?
*?Usage:?java?ScreenCapture?[-d?seconds]?[-f?filename]?
*?@Author?
*?Cheng-Yu?Chang?
*?@License?
*?GPL(GNU?GENERAL?PUBLIC?LICENSE)?
*?http://www.gnu.org/copyleft/gpl.html?
*/?
import?java.awt.*;?
import?java.awt.image.*;?
import?java.io.*;?
import?com.sun.image.codec.jpeg.JPEGCodec;?
import?com.sun.image.codec.jpeg.JPEGImageEncoder;?
public?class?ScreenCapture?...{?
public?static?void?ScreenCapture(int?seconds,?String?filename)?...{?
Robot?robot?=?null;?
//?產(chǎn)生?Robot?物件,記著要?catch?AWTException?
try?...{?
robot?=new?Robot();?
//?延遲使用者輸入的秒數(shù)?
robot.delay(seconds);?
//?將截取的image轉(zhuǎn)換成jpg格式?
OutputStream?f?=?new?FileOutputStream(filename);?
JPEGImageEncoder?encoder?=?JPEGCodec.createJPEGEncoder(f);?
encoder.encode(robot.createScreenCapture(new?Rectangle(Toolkit.getDefaultToolkit().getScreenSize())));?
f.close();?
}catch(AWTException?e1)?...{}?
catch(IOException?e2)?...{}?
}?
//?使用說(shuō)明?
private?static?void?usage()?...{?
System.out.println("Usage:?java?ScreenCapture?[-d?seconds]?[-f?filename]");?
System.out.println(" -d?Seconds?to?delay?before?capturing?screen");?
System.out.println(" -f?JPG?filename?to?save");?
System.exit(0);?
}?
public?static?void?main(String?args[])?...{?
int?s?=?0;?
String?filename?=?"ScreenCapture.jpg";?
//?判定輸入的參數(shù)?
if?(args.length?==?0)?
usage();?
else?...{?
for?(int?i?=?0?;?i?<?args.length?;?i++)?...{?
if?(args[i].startsWith("-"))?...{?
if?(args[i].equals("-d"))?...{?
if?(i?<?args.length?-?1)?
s?=?Integer.parseInt(args[++i]);?
else?
usage();?
}?
if?(args[i].equals("-f"))?...{?
if?(i?<?args.length?-?1)?
filename?=?args[++i];?
else?
usage();?
}?
}else?
usage();?
}?
}?
ScreenCapture(s?*?1000,?filename);?
System.exit(0);?
}?
總結(jié)
以上是生活随笔為你收集整理的java中Robot的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java中的DatagramPacket
- 下一篇: UDP内网和外网连接通信的问题