隨筆-30  評(píng)論-123  文章-0  trackbacks-0
          摘要:本文展示了如何使用Java的Robot類創(chuàng)建一個(gè)能夠捕獲主屏幕內(nèi)容的屏幕捕捉程序。本程序處理捕捉屏幕外,還能夠?qū)⒄麄€(gè)屏幕或者屏幕的一部分保存成.jpg文件。

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

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

          系統(tǒng)實(shí)現(xiàn)
          本程序包括3個(gè)源文件:
          Capture.java:啟動(dòng)應(yīng)用程序,構(gòu)建GUI;
          ImageArea.java:顯示和選取屏幕圖片的組件;
          ImageFileFilter.java:文件選擇過濾器,限制只能選擇JPEG文件。
          下面我將結(jié)合代碼片斷介紹如何實(shí)現(xiàn)屏幕捕捉程序。

          屏幕捕獲
          要想使用Robot類創(chuàng)建屏幕捕捉程序,首先要?jiǎng)?chuàng)建Robot對(duì)象。在Capture類的public static void main(String [] args)方法中用Robot的public Robot()創(chuàng)建Robot對(duì)象。如果創(chuàng)建成功,就會(huì)返回配置主屏幕坐標(biāo)系統(tǒng)的Robot引用。如果平臺(tái)不支持低級(jí)控制,就會(huì)拋出java.awt.AWTException。如果平臺(tái)不允許創(chuàng)建Robot,就會(huì)拋出java.lang.SecurityException。希望在你的平臺(tái)上不會(huì)拋出上面兩個(gè)異常。

          假設(shè)Robot對(duì)象已經(jīng)創(chuàng)建,main()會(huì)調(diào)用Capture類的構(gòu)造函數(shù)創(chuàng)建GUI。在創(chuàng)建GUI的同時(shí),Capture調(diào)用dimScreenSize = Toolkit.getDefaultToolkit ().getScreenSize ();來獲得屏幕的尺寸信息。因?yàn)镽obot中用于執(zhí)行屏幕捕獲的public BufferedImage createScreenCapture(Rectangle screenRect)方法需要一個(gè)java.awt.Rectangle參數(shù)。構(gòu)造函數(shù)通過rectScreenSize = new Rectangle (dimScreenSize);將java.awt.Dimension轉(zhuǎn)換成Rectangle 。下面的代碼片斷展示了當(dāng)菜單中捕捉菜單項(xiàng)按下后執(zhí)行的屏幕捕捉動(dòng)作。
          //?執(zhí)行屏幕捕捉時(shí)隱藏屏幕捕捉程序,使其不顯示在桌面上.

          setVisible?(
          false);

          //?執(zhí)行屏幕捕捉.

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

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

          setVisible?(
          true);

          //?用捕獲的屏幕圖片刷新ImageArea組件并相應(yīng)調(diào)整滾動(dòng)條.

          ia.setImage?(biScreen);

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

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

          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);

          // 建立鼠標(biāo)監(jiān)聽.

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

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

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

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

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

          //?建立鼠標(biāo)移動(dòng)監(jiān)聽.

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

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

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

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

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

          if?(srcx?!=?destx?||?srcy?!=?desty)
          {
          ????
          //?計(jì)算左上和右下點(diǎn)的坐標(biāo).

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

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

          ????
          //?確定矩形的原點(diǎn).

          ????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);
          }

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

          圖像裁剪
          選取完圖像以后,我們自然要裁剪它。當(dāng)點(diǎn)擊菜單中的“裁剪”菜單項(xiàng)時(shí),ImageArea組件會(huì)將選中的圖像裁減下來。如果裁剪成功,ImageArea的滾動(dòng)條會(huì)重新設(shè)置,否則程序會(huì)彈出“超出范圍”對(duì)話框。
          //?如果裁剪成功,重新設(shè)置滾動(dòng)條.

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

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

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

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

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

          ???
          //?默認(rèn)返回true.

          ???
          boolean?succeeded?=?true;

          ???
          //?計(jì)算選取框的左上角和右下角坐標(biāo).

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

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

          ???
          //?計(jì)算選取框的尺寸.

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

          ???
          //?創(chuàng)建保存裁剪圖像的圖像緩沖.

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

          ???
          //?執(zhí)行裁剪操作.

          ???
          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
          ???
          {
          ???????
          //?準(zhǔn)備刪除選取框.

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

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

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


          ???
          return?succeeded;
          }


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

          保存圖像
          本程序允許保存圖像。你可以通過文件選擇存對(duì)話框?yàn)橐獔?bào)存的圖像取個(gè)名字。文件保存對(duì)話框在Capture類的構(gòu)造函數(shù)中定義。
          final?JFileChooser?fcSave?=?new?JFileChooser?();
          fcSave.setCurrentDirectory?(
          new?File?(System.getProperty?("user.dir")));
          fcSave.setAcceptAllFileFilterUsed?(
          false);
          fcSave.setFileFilter?(
          new?ImageFileFilter?());

          為了約束文件選擇對(duì)話框所能保存只能保存JPEG文件,我們創(chuàng)建了一個(gè)ImageFileFilter類作為文件選擇對(duì)話框的文件過濾器。如果傳入方法public boolean accept (File f)的參數(shù)不是目錄或者以.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;
          }

          當(dāng)點(diǎn)擊菜單的“另存為”菜單項(xiàng)時(shí),調(diào)用文件選擇器。文件選擇器會(huì)確保你的文件保存為JPEG文件。如果你為文件氣的名字已經(jīng)被另一個(gè)文件使用,文件選擇器將詢問你是否覆蓋原文件。
          //?顯示文件選擇器,不選中任何文件.
          //?如果用戶點(diǎn)擊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;
          }

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

          try
          {
          ????
          //?獲得一個(gè)jpeg?類型的寫入器

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

          ????
          //?驗(yàn)證寫入器是否存在

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

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


          ????
          //?獲取寫入器寫入目標(biāo)

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

          ????
          //?設(shè)置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塊中,這樣不管是正常的保存成功還是意外地中止,都能執(zhí)行響應(yīng)的清理工作。

          改進(jìn)
          本文中的這個(gè)屏幕捕捉程序只能捕捉主屏幕設(shè)備的圖像。也許你希望捕獲所有屏幕的圖像。要實(shí)現(xiàn)這個(gè)功能,你可以將下面的代碼加入到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屏幕捕捉程序的全過程。希望對(duì)大家能有所啟示。如果需要本程序的全部源代碼,請(qǐng)留下郵箱,我會(huì)及時(shí)發(fā)給你。
          posted on 2006-05-17 11:30 學(xué)二的貓 閱讀(5542) 評(píng)論(72)  編輯  收藏 所屬分類: Java禪機(jī)

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

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

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

          謝謝。。

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

          謝謝。。

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


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

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

          Thank you!  回復(fù)  更多評(píng)論
            
          # re: 使用Robot類創(chuàng)建自己的Java版屏幕捕捉程序[未登錄] 2011-11-16 10:21 | fish
          給我發(fā)一份hjtang.oreo@gmail.com
            回復(fù)  更多評(píng)論
            
          # re: 使用Robot類創(chuàng)建自己的Java版屏幕捕捉程序 2012-03-22 16:11 | 曉明
          頂,強(qiáng)!發(fā)我一分吧,先謝謝你了!
          1976135784@qq.com  回復(fù)  更多評(píng)論
            
          # re: 使用Robot類創(chuàng)建自己的Java版屏幕捕捉程序[未登錄] 2012-05-09 13:36 | 記憶碎片
          能把源代碼也給我發(fā)一份嗎,謝謝  回復(fù)  更多評(píng)論
            
          # re: 使用Robot類創(chuàng)建自己的Java版屏幕捕捉程序[未登錄] 2012-05-09 13:37 | 記憶碎片
          348472012@qq.com  回復(fù)  更多評(píng)論
            
          # re: 使用Robot類創(chuàng)建自己的Java版屏幕捕捉程序 2012-05-14 09:35 | yujiaming
          求一份源代碼,學(xué)習(xí)學(xué)習(xí)。謝謝版主。
          我的郵箱是hityujiaming@163.com  回復(fù)  更多評(píng)論
            
          # re: 使用Robot類創(chuàng)建自己的Java版屏幕捕捉程序 2012-06-25 14:44 | rentent
          求一份源代碼,學(xué)習(xí)學(xué)習(xí)。謝謝版主。
          我的郵箱是rentent@163.com  回復(fù)  更多評(píng)論
            
          # re: 使用Robot類創(chuàng)建自己的Java版屏幕捕捉程序 2012-09-09 00:58 | hiv
          yes,學(xué)習(xí)了,  回復(fù)  更多評(píng)論
            
          # re: 使用Robot類創(chuàng)建自己的Java版屏幕捕捉程序 2013-03-18 17:02 | 莫煜
          求一份源代碼,學(xué)習(xí)學(xué)習(xí)。謝謝版主.我的郵箱是865007837@qq.com
            回復(fù)  更多評(píng)論
            
          主站蜘蛛池模板: 沾益县| 巴中市| 大连市| 开封县| 新乐市| 肥东县| 昭觉县| 精河县| 顺义区| 内丘县| 密山市| 崇明县| 永定县| 平顺县| 中超| 永兴县| 社旗县| 绍兴县| 涞源县| 措勤县| 确山县| 西青区| 安龙县| 象山县| 台湾省| 台州市| 拜城县| 彰武县| 乐业县| 运城市| 奉化市| 上高县| 武城县| 察雅县| 乾安县| 射阳县| 临猗县| 陕西省| 桂阳县| 阿荣旗| 吴忠市|