隨筆-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 學二的貓 閱讀(5542) 評論(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
            回復  更多評論
            
          主站蜘蛛池模板: 延寿县| 新营市| 桃园市| 南江县| 讷河市| 宁波市| 湘潭县| 鄂州市| 双城市| 西贡区| 阿勒泰市| 丘北县| 沾益县| 阿拉善右旗| 巴青县| 嘉祥县| 辽阳县| 盈江县| 新民市| 白水县| 枣强县| 石阡县| 长白| 武安市| 泰和县| 嘉禾县| 皮山县| 临潭县| 昌平区| 台北县| 温宿县| 拉萨市| 库伦旗| 天祝| 江口县| 新乡市| 宽甸| 吉首市| 孟津县| 买车| 通海县|