<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-30  評論-123  文章-0  trackbacks-0
    摘要:本文展示了如何使用Java的Robot類創建一個能夠捕獲主屏幕內容的屏幕捕捉程序。本程序處理捕捉屏幕外,還能夠將整個屏幕或者屏幕的一部分保存成.jpg文件。

    java.awt.Robot類真的很好玩。玩Robot會給你帶來很多樂趣。下面讓我們看看用Robot是怎么創建你自己的屏幕捕捉程序的。

    程序界面
    下圖是我的屏幕捕捉程序的界面。你可以用它來捕捉屏幕,裁剪選取的圖片內容,并將結果保存為.jpg文件。
    capture1.jpg
    屏幕捕捉程序的界面很簡單,包括一個菜單和一個用于顯示捕捉圖像的滾動窗口。在窗口上按住鼠標左鍵拖動鼠標,你會看到一個紅色的虛線矩形,這就是圖像選取框,選取圖片以后選擇裁剪菜單,就可以對圖像進行裁減。見下圖:
    capture2.jpg

    系統實現
    本程序包括3個源文件:
    Capture.java:啟動應用程序,構建GUI;
    ImageArea.java:顯示和選取屏幕圖片的組件;
    ImageFileFilter.java:文件選擇過濾器,限制只能選擇JPEG文件。
    下面我將結合代碼片斷介紹如何實現屏幕捕捉程序。

    屏幕捕獲
    要想使用Robot類創建屏幕捕捉程序,首先要創建Robot對象。在Capture類的public static void main(String [] args)方法中用Robot的public Robot()創建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 。下面的代碼片斷展示了當菜單中捕捉菜單項按下后執行的屏幕捕捉動作。
    //?執行屏幕捕捉時隱藏屏幕捕捉程序,使其不顯示在桌面上.

    setVisible?(
    false);

    //?執行屏幕捕捉.

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

    //?完成屏幕捕捉后顯示屏幕捕捉程序窗口.

    setVisible?(
    true);

    //?用捕獲的屏幕圖片刷新ImageArea組件并相應調整滾動條.

    ia.setImage?(biScreen);

    jsp.getHorizontalScrollBar?().setValue?(
    0);
    jsp.getVerticalScrollBar?().setValue?(
    0);
    我不希望屏幕捕捉程序窗口遮住主屏幕,因此在捕捉屏幕之前我先將其隱藏。當獲取到保存有屏幕圖片象素的java.awt.image.BufferedImage 后,屏幕捕捉程序窗口再次顯現出來并通過ImageArea組件顯示出BufferedImage

    圖像選取
    首先我們需要一個矩形框來標識我們想要裁剪的圖像區域。在ImageArea組建中,提供了創建、操作、繪制這個矩形框的代碼。下面的代碼片斷來自ImageArea.java,ImageArea類的構造函數創建了選取矩形框的實例,并且創建了java.awt.BasicStrokejava.awt.GradientPaint 對象來定義選取框的外觀,同時還注冊了鼠標和鼠標移動監聽,來幫助你操作矩形選取框。
    //?創建矩形選取框.最好是只創建一個選取框,
    ???// 這樣比每次paintComponent()被調用時創建選取框好.
    ???// 減少了不必要的對象的創建

    rectSelection?
    =?new?Rectangle?();

    //?定義矩形選取框的輪廓.

    bs?
    =?new?BasicStroke?(5,?BasicStroke.CAP_ROUND,?BasicStroke.JOIN_ROUND,
    ??????????????????????
    0,?new?float?[]?{?12,?12?},?0);

    //?定義矩形選取框的顏色

    gp?
    =?new?GradientPaint?(0.0f,?0.0f,?Color.red,?1.0f,?1.0f,?Color.white,
    ????????????????????????
    true);

    // 建立鼠標監聽.

    MouseListener?ml;
    ml?
    =?new?MouseAdapter?()
    ?????
    {
    ?????????
    public?void?mousePressed?(MouseEvent?e)
    ?????????
    {
    ????????????
    //?沒有捕獲的圖像時直接返回.

    ????????????
    if?(image?==?null)
    ????????????????
    return;

    ????????????destx?
    =?srcx?=?e.getX?();
    ????????????desty?
    =?srcy?=?e.getY?();

    ????????????repaint?();
    ?????????}

    ?????}
    ;
    addMouseListener?(ml);

    //?建立鼠標移動監聽.

    MouseMotionListener?mml;
    mml?
    =?new?MouseMotionAdapter?()
    ??????
    {
    ??????????
    public?void?mouseDragged?(MouseEvent?e)
    ??????????
    {
    ?????????????
    //?沒有捕獲的圖像時直接返回.

    ?????????????
    if?(image?==?null)
    ?????????????????
    return;

    ?????????????destx?
    =?e.getX?();
    ?????????????desty?
    =?e.getY?();

    ?????????????repaint?();?
    ??????????}

    ??????}
    ;
    addMouseMotionListener?(mml);
    當點擊鼠標時,鼠標事件處理器將destx?和 srcx都設置為鼠標的橫坐標,縱坐標業一樣。源坐標和目的坐標一樣意味著刪除當前的矩形選取框。我們可以通過調用repaint(),repaint()會調用public void paintComponent(Graphics g)實現刪除矩形選取框。paintComponent()方法會比較srcx與destx, srcydesty;如果他們不相等,就繪制一個新的矩形選取框。
    //?繪制矩形選取框.

    if?(srcx?!=?destx?||?srcy?!=?desty)
    {
    ????
    //?計算左上和右下點的坐標.

    ????
    int?x1?=?(srcx?<?destx)???srcx?:?destx;
    ????
    int?y1?=?(srcy?<?desty)???srcy?:?desty;

    ????
    int?x2?=?(srcx?>?destx)???srcx?:?destx;
    ????
    int?y2?=?(srcy?>?desty)???srcy?:?desty;

    ????
    //?確定矩形的原點.

    ????rectSelection.x?
    =?x1;
    ????rectSelection.y?
    =?y1;

    ????
    //?確定矩形的長寬.

    ????rectSelection.width?
    =?(x2-x1)+1;
    ????rectSelection.height?
    =?(y2-y1)+1;

    ????
    //?繪制矩形.

    ????Graphics2D?g2d?
    =?(Graphics2D)?g;
    ????g2d.setStroke?(bs);
    ????g2d.setPaint?(gp);
    ????g2d.draw?(rectSelection);
    }

    在繪制矩形之前,要先確定矩形的左上和右下角,以便算出矩形的原點和長寬。因此你可以任意拖動鼠標繪制選取框,最后srcx/destxsrcy/desty中的最小值確定左上角,同理,最大值確定右下角。

    圖像裁剪
    選取完圖像以后,我們自然要裁剪它。當點擊菜單中的“裁剪”菜單項時,ImageArea組件會將選中的圖像裁減下來。如果裁剪成功,ImageArea的滾動條會重新設置,否則程序會彈出“超出范圍”對話框。
    //?如果裁剪成功,重新設置滾動條.

    if?(ia.crop?())
    {
    ????jsp.getHorizontalScrollBar?().setValue?(
    0);
    ????jsp.getVerticalScrollBar?().setValue?(
    0);
    }

    else
    ????showError?(
    "超出范圍");

    也許你會問為什么會出現“超出范圍”呢?請看下圖
    capture3.jpg
    由于裁剪后GUI窗口不會改變大小,因此可能裁減后的圖片比程序的GUI窗口小,GUI窗口的背景就顯露出來。如果選取框包含了GUI窗口的背景象素,那么在裁剪時就會報“超出范圍”錯誤。

    裁剪功能是由ImageArea的public boolean crop() 方法實現的。當裁剪成功或者沒有可裁減圖像時返回true,如果選取框包含有GUI窗口背景象素,就返回false。下面是代碼:
    public?boolean?crop?()
    {
    ???
    //?如果選取框只是一個點,返回true

    ???
    if?(srcx?==?destx?&&?srcy?==?desty)
    ???????
    return?true;

    ???
    //?默認返回true.

    ???
    boolean?succeeded?=?true;

    ???
    //?計算選取框的左上角和右下角坐標.

    ???
    int?x1?=?(srcx?<?destx)???srcx?:?destx;
    ???
    int?y1?=?(srcy?<?desty)???srcy?:?desty;

    ???
    int?x2?=?(srcx?>?destx)???srcx?:?destx;
    ???
    int?y2?=?(srcy?>?desty)???srcy?:?desty;

    ???
    //?計算選取框的尺寸.

    ???
    int?width?=?(x2-x1)+1;
    ???
    int?height?=?(y2-y1)+1;

    ???
    //?創建保存裁剪圖像的圖像緩沖.

    ???BufferedImage?biCrop?
    =?new?BufferedImage?(width,?height,
    ?????????????????????????????????????????????BufferedImage.TYPE_INT_RGB);
    ???Graphics2D?g2d?
    =?biCrop.createGraphics?();

    ???
    //?執行裁剪操作.

    ???
    try
    ???
    {
    ???????BufferedImage?bi?
    =?(BufferedImage)?image;
    ???????BufferedImage?bi2?
    =?bi.getSubimage?(x1,?y1,?width,?height);
    ???????g2d.drawImage?(bi2,?
    null,?0,?0);
    ???}

    ???
    catch?(RasterFormatException?e)
    ???
    {
    ??????succeeded?
    =?false;
    ???}


    ???g2d.dispose?();

    ???
    if?(succeeded)
    ???????setImage?(biCrop);?
    ???else
    ???
    {
    ???????
    //?準備刪除選取框.

    ???????srcx?
    =?destx;
    ???????srcy?
    =?desty;

    ???????
    //?刪除選取框.

    ???????repaint?();
    ???}


    ???
    return?succeeded;
    }


    crop()會調用BufferedImagepublic BufferedImage getSubimage(int x, int y, int w, int h)方法將選取框中的圖像從原圖像中裁剪下來。如果參數不是指定的BufferedImage區域,此方法會拋出java.awt.image.RasterFormatException 異常,返回fasle。

    保存圖像
    本程序允許保存圖像。你可以通過文件選擇存對話框為要報存的圖像取個名字。文件保存對話框在Capture類的構造函數中定義。
    final?JFileChooser?fcSave?=?new?JFileChooser?();
    fcSave.setCurrentDirectory?(
    new?File?(System.getProperty?("user.dir")));
    fcSave.setAcceptAllFileFilterUsed?(
    false);
    fcSave.setFileFilter?(
    new?ImageFileFilter?());

    為了約束文件選擇對話框所能保存只能保存JPEG文件,我們創建了一個ImageFileFilter類作為文件選擇對話框的文件過濾器。如果傳入方法public boolean accept (File f)的參數不是目錄或者以.jpg .jpeg為后綴的文件,那么返回false
    public?boolean?accept?(File?f)
    {
    ???
    //?允許用戶選擇文件夾.

    ???
    if?(f.isDirectory?())
    ???????
    return?true;

    ???
    //?允許用戶選擇以.jpg?或?.jpeg為后綴的文件

    ???String?s?
    =?f.getName?();
    ???
    int?i?=?s.lastIndexOf?('.');

    ???
    if?(i?>?0?&&?i?<?s.length?()-1)
    ???
    {
    ???????String?ext?
    =?s.substring?(i+1).toLowerCase?();

    ???????
    if?(ext.equals?("jpg")?||?ext.equals?("jpeg"))
    ???????????
    return?true;
    ???}


    ???
    //?沒有可以選擇的.

    ???
    return?false;
    }

    當點擊菜單的“另存為”菜單項時,調用文件選擇器。文件選擇器會確保你的文件保存為JPEG文件。如果你為文件氣的名字已經被另一個文件使用,文件選擇器將詢問你是否覆蓋原文件。
    //?顯示文件選擇器,不選中任何文件.
    //?如果用戶點擊cancel,則退出.

    fcSave.setSelectedFile?(
    null);
    if?(fcSave.showSaveDialog?(Capture.this)?!=
    ????JFileChooser.APPROVE_OPTION)
    ????
    return;

    //?獲取選擇的文件.如果不是以.jpg 或.jpeg為后綴,
    ?//?添加.jpg后綴

    File?file?
    =?fcSave.getSelectedFile?();
    String?path?
    =?file.getAbsolutePath?().toLowerCase?();
    if?(!path.endsWith?(".jpg")?&&?!path.endsWith?(".jpeg"))
    ????file?
    =?new?File?(path?+=?".jpg");

    //?如果文件已存在,通知用戶??????????????????
    if?(file.exists?())
    {
    ????
    int?choice?=??JOptionPane.
    ??????????????????showConfirmDialog?(
    null,
    ?????????????????????????????????????
    "Overwrite?file?",
    ?????????????????????????????????????
    "Capture",
    ?????????????????????????????????????JOptionPane.
    ?????????????????????????????????????YES_NO_OPTION);
    ????
    if?(choice?==?JOptionPane.NO_OPTION)
    ????????
    return;
    }

    如果文件不存在,或者你允許覆蓋已有文件,程序將會保存圖片。為了完成保存,我們使用了Java的ImageIO框架。代碼如下:
    ImageWriter?writer?=?null;
    ImageOutputStream?ios?
    =?null;

    try
    {
    ????
    //?獲得一個jpeg?類型的寫入器

    ????Iterator?iter;
    ????iter?
    =?ImageIO.getImageWritersByFormatName?("jpeg");

    ????
    //?驗證寫入器是否存在

    ????
    if?(!iter.hasNext?())
    ????
    {
    ????????showError?(
    "Unable?to?save?image?to?jpeg?file?type.");
    ????????
    return;
    ????}
    .

    ????writer?
    =?(ImageWriter)?iter.next();


    ????
    //?獲取寫入器寫入目標

    ????ios?
    =?ImageIO.createImageOutputStream?(file);
    ????writer.setOutput?(ios);

    ????
    //?設置jpeg壓縮率為?95%.

    ????ImageWriteParam?iwp?
    =?writer.getDefaultWriteParam?();
    ????iwp.setCompressionMode?(ImageWriteParam.MODE_EXPLICIT);
    ????iwp.setCompressionQuality?(
    0.95f);

    ????
    //?寫入圖像.

    ????writer.write?(
    null,
    ??????????????????
    new?IIOImage?((BufferedImage)
    ????????????????????????????????ia.getImage?(),?
    null,?null),
    ??????????????????iwp);
    }

    catch?(IOException?e2)
    {
    ????showError?(e2.getMessage?());
    }

    finally
    {
    ????
    try
    ????
    {
    ????????
    //?清理.

    ????????
    if?(ios?!=?null)
    ????????
    {
    ????????????ios.flush?();
    ????????????ios.close?();
    ????????}


    ????????
    if?(writer?!=?null)
    ????????????writer.dispose?();
    ????}

    ????
    catch?(IOException?e2)
    ????
    {
    ????}

    }

    保存后的清理工作很有必要。我將清理代碼上到finally塊中,這樣不管是正常的保存成功還是意外地中止,都能執行響應的清理工作。

    改進
    本文中的這個屏幕捕捉程序只能捕捉主屏幕設備的圖像。也許你希望捕獲所有屏幕的圖像。要實現這個功能,你可以將下面的代碼加入到Capture.java中:
    GraphicsEnvironment?graphenv?=?GraphicsEnvironment.getLocalGraphicsEnvironment?();
    GraphicsDevice?[]?screens?
    =?graphenv.getScreenDevices?();
    BufferedImage?[]?captures?
    =?new?BufferedImage?[screens.length];

    for?(int?i?=?0;?i?<?screens.length;?i++)
    {
    ????DisplayMode?mode?
    =?screens?[i].getDisplayMode?();
    ????Rectangle?bounds?
    =?new?Rectangle?(0,?0,?mode.getWidth?(),?mode.getHeight?());
    ????captures?[i]?
    =?new?Robot?(screens?[i]).createScreenCapture?(bounds);
    }


    上面介紹了用Robot類制作Java屏幕捕捉程序的全過程。希望對大家能有所啟示。如果需要本程序的全部源代碼,請留下郵箱,我會及時發給你。
    posted on 2006-05-17 11:30 學二的貓 閱讀(5530) 評論(72)  編輯  收藏 所屬分類: Java禪機

    評論:
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2006-05-18 16:56 | spermakert
    剛學JAVA向你學習!
    spermakert@gamil.com
    謝謝提供代碼  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2006-05-18 17:19 | 乾為天
    liuyong25@gmail.com

    enjoy share  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2006-05-18 17:36 | 學二的貓
    @乾為天
    @spermakert
    源代碼已經發到你們的郵箱里了,請查收。
      回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2006-05-18 21:03 | FinalFantasy
    能給份源代碼么?謝謝拉……  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2006-05-19 08:47 | 學二的貓
    @FinalFantasy
    請留下郵箱地址。我會發過去。  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2006-05-20 16:27 | 23452
    ljm983_2001@126.com
    謝謝。。。

    真好  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2006-05-20 20:37 | 學二的貓
    @23452
    周一發給你.  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2006-05-21 10:14 | benwong314
    benwongjob@163.com  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2006-05-22 15:23 | btk
    bluebillow@163.com
    學習一下
    thx  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2006-05-23 19:15 | loving...
    能個小妹我一份嗎?

    謝謝。。

    renxianqi.2008@163.com  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2006-05-30 09:12 | 游客2006
    能不能也E-mail一份給我啊,謝謝你了  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2006-05-30 09:12 | 游客2006
    能不能也E-mail一份給我啊,謝謝你了,忘了給你郵件地址暈
    wu_zhifeng@163.com  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2006-05-30 10:21 | 游客2006
    謝謝,收到了,你的博客不錯啊  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2006-06-07 09:56 | Wen
    topgun_wen@hotmail.com
    Thanks! 有機會多交流!  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2006-06-16 17:31 | Mir
    Mir@163.com
    3Q~  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2006-06-17 15:41 | 學二的貓
    @Mir
    最近在忙畢業設計和答辯,所以不能馬上回復你。星期二發給你,好嗎?  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2007-06-15 10:01 | xinxin
    能給我一份嗎?

    謝謝。。

    XL84867233@126.com  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2007-06-20 18:18 | xiaohu
    能給我看看嗎/
    謝謝!~
    xiaohu7924@126.com  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2007-07-17 16:15 | yueye
    發給我份好么
    謝謝!~
    yueye19841212@163.com  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2007-07-22 11:00 | 天之隕
    179016660@qq.com
    還有源碼嗎?有的話請發我一份,謝謝!  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2007-07-27 09:55 | Matthew Chen
    暈,從06年到現在一直有人要嗎?我也要一個djsl6071@hotmail.com  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2007-08-01 20:00 | HLL
    發給我份好么
    謝謝
    HLL_1986@126.com  回復  更多評論
      
    # 尋求Java版屏幕捕捉程序 2007-08-12 19:34 | 小毛
    頂,強!發我一分吧,先謝謝你了!
    cuizhenhua3310@yahoo.com.cn  回復  更多評論
      
    # 急求 2007-08-15 15:23 | 小毛
    頂,強!發我一分吧,先謝謝你了!
    cuizhenhua3310@yahoo.com.cn  回復  更多評論
      
    # Java版屏幕捕捉程序[未登錄] 2007-08-15 15:28 | 小菜
    發給小地一份 xiasha-456@163.com  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2007-09-27 21:13 | 火麟食日
    whisperlin@21cn.com
    兄弟先謝了啊  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2007-11-19 17:15 | testlike
    能給我一份源代碼么,zhang123sx@tom.com,非常感謝  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2007-11-26 10:33 | 張勇
    兄弟,給我也發一份,baggio1958@sohu.com.
    謝謝  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2007-11-27 02:56 | xu
    麻煩樓主也傳我一份 stxu1987@163.com  回復  更多評論
      
    # 請發送源代碼,多謝 2007-12-05 20:57 | 魏來
    weilai@thtf.com.cn  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2007-12-11 09:36 | lenj
    8626530@qq.com 謝謝  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2008-01-17 18:11 | jove
    fingerlinglovea@163.com 謝謝  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2008-01-20 14:50 | kusu
    thank you!!


    kangkang1986@126.com  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2008-01-24 19:39 | cmhdy
    能不能也E-mail一份給我啊,cmhdy@hotmail.com
    謝謝你了  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2008-01-31 16:01 | cmhdy
    麻煩樓主也傳我一份 cmhdy@163.com   回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2008-01-31 16:02 | cmhdy
    麻煩樓主也傳我一份 cmhdy@163.com  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2008-01-31 18:21 | samttsch
    samttsch@163.com
    3Q  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序[未登錄] 2008-02-21 15:03 | dawei
    lklkdawei@163.com
    謝謝  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2008-03-24 11:36 | 吳章銀
    wuzhangyin@126.com
    謝謝  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2008-04-22 10:36 | wangjun
    junzheng_126@126.com  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2008-04-26 21:32 | lp
    這篇文章真不錯!
    兩年多了一直有人要代碼,可見含金量!
    我也不能免俗,szrw668@163.com  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2008-05-24 21:34 | 倪斌
    真的不錯哎,向你學習,呵呵。
    發給我份參考下吧。
    nibin123@163.com  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2008-05-30 17:55 | greenpith
    給個我吧!謝謝!
    greenpith@126.com  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序[未登錄] 2008-06-11 21:57 | jimmy
    My i have the code?Thanks a lot!  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序[未登錄] 2008-06-11 21:58 | jimmy
    E-mail address : woshijiangjun22@163.com
      回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2008-07-10 15:26 | MLP
    請給我一份,我急用,malanpeng@126.com,萬分感謝  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2008-07-10 15:27 | MLP
    要是有設計報告就更好了,呵呵,先謝謝了  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2008-10-08 10:56 | 二大爺
    別的網上摘抄下來的吧  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2008-10-08 11:02 | 二大爺
    @jimmy
    網上到處都有,你小子還給你二大爺使英文  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2008-10-25 08:41 | 秦時月
    看了以上代碼,覺得很不錯,請發一份給我
    不勝感激!
    email:xiangyuanxuan1982@163.com  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序[未登錄] 2008-10-31 00:26 | lulu
    斑竹,能否發給我一份?
    cdl1126@sohu.com
    謝謝。  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序[未登錄] 2009-02-11 21:52 | 蝸牛
    546430850@qq.com

    能否給我一份源碼啊,謝謝了  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2009-06-07 10:47 | xueyi
    zuo-1998@163.com
    求源代碼,謝謝!  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2009-12-19 22:22 | 903960907@qq.com
    903960907@qq.com
      回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2010-01-04 21:59 | DJF
    能發下源代碼嗎437538453@qq.com 謝謝  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2010-01-08 15:45 | zxg
    請發一份源代碼給我,謝謝。
    zxgfirefox@gmail.com  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2010-05-11 23:08 | shan
    461375932@qq.com,謝謝啦  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2010-05-11 23:09 | shan
    461375932@qq.com  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序[未登錄] 2010-08-19 17:11 | jason
    正需要 謝謝了 jasongwt@gmail.com   回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2010-08-21 00:55 | yaphet
    541579607@qq.com  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2010-08-30 11:08 | cll
    changlele01@163.com
    十分感謝!!!  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2011-01-07 11:23 | 凝知
    先評論再學習  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序[未登錄] 2011-09-18 22:02 | tom
    還請發一份給我
    郵箱: 522845072@qq.com  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序[未登錄] 2011-09-18 22:04 | tom
    還請發一份給我
    郵箱:522845072@qq.com

    Thank you!  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序[未登錄] 2011-11-16 10:21 | fish
    給我發一份hjtang.oreo@gmail.com
      回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2012-03-22 16:11 | 曉明
    頂,強!發我一分吧,先謝謝你了!
    1976135784@qq.com  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序[未登錄] 2012-05-09 13:36 | 記憶碎片
    能把源代碼也給我發一份嗎,謝謝  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序[未登錄] 2012-05-09 13:37 | 記憶碎片
    348472012@qq.com  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2012-05-14 09:35 | yujiaming
    求一份源代碼,學習學習。謝謝版主。
    我的郵箱是hityujiaming@163.com  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2012-06-25 14:44 | rentent
    求一份源代碼,學習學習。謝謝版主。
    我的郵箱是rentent@163.com  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2012-09-09 00:58 | hiv
    yes,學習了,  回復  更多評論
      
    # re: 使用Robot類創建自己的Java版屏幕捕捉程序 2013-03-18 17:02 | 莫煜
    求一份源代碼,學習學習。謝謝版主.我的郵箱是865007837@qq.com
      回復  更多評論
      
    主站蜘蛛池模板: a级成人毛片免费图片| 天天爽亚洲中文字幕| 国产成人综合亚洲| 日韩视频在线免费观看| 亚洲综合偷自成人网第页色| 国产国产人免费视频成69堂| 亚洲伦理一区二区| 久久久久久一品道精品免费看| 日日噜噜噜噜夜夜爽亚洲精品 | 午夜亚洲国产精品福利| 国产在线19禁免费观看| 十八禁的黄污污免费网站| 免费看国产精品麻豆| 国产亚洲精品美女| 国产福利电影一区二区三区,亚洲国模精品一区 | 亚洲国产日韩在线| 欧亚精品一区三区免费| 亚洲精品宾馆在线精品酒店| 麻豆国产精品入口免费观看| 亚洲av成人无码网站…| 亚洲午夜av影院| 你懂的免费在线观看网站| 亚洲不卡中文字幕| 在线看片无码永久免费aⅴ| 一区二区三区AV高清免费波多| 亚洲av色影在线| 在线观看免费人成视频色| 亚洲七久久之综合七久久| 中文字幕在亚洲第一在线| 免费看h片的网站| av电影在线免费看| 亚洲毛片无码专区亚洲乱| 国产一区二区免费在线| 日本免费在线观看| 国产精品无码亚洲精品2021| 亚洲日本视频在线观看| 精品亚洲成α人无码成α在线观看| 国产四虎免费精品视频| 成人无码WWW免费视频| 国产亚洲精品免费| 国产精品亚洲综合五月天|