﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-penngo-随笔分类-个人工具</title><link>http://www.blogjava.net/pengo/category/47637.html</link><description /><language>zh-cn</language><lastBuildDate>Mon, 10 Sep 2012 21:18:55 GMT</lastBuildDate><pubDate>Mon, 10 Sep 2012 21:18:55 GMT</pubDate><ttl>60</ttl><item><title>使用电脑摄像头识别二维码</title><link>http://www.blogjava.net/pengo/archive/2012/09/10/387428.html</link><dc:creator>penngo</dc:creator><author>penngo</author><pubDate>Mon, 10 Sep 2012 15:50:00 GMT</pubDate><guid>http://www.blogjava.net/pengo/archive/2012/09/10/387428.html</guid><wfw:comment>http://www.blogjava.net/pengo/comments/387428.html</wfw:comment><comments>http://www.blogjava.net/pengo/archive/2012/09/10/387428.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pengo/comments/commentRss/387428.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pengo/services/trackbacks/387428.html</trackback:ping><description><![CDATA[<div><span style="font-size: 12pt; ">要想摄像头识别二维码，需要两个基本功能：1、从摄像头获取图像，2、根据图片解析出二维码信息。在上一篇</span><a href="http://www.blogjava.net/pengo/archive/2012/06/09/380385.html" target="_blank" title="java摄像头截图"><span style="font-size: 12pt; ">java摄像头截图</span></a><span class="Apple-style-span" style="font-size: 12pt; ">已经实现了摄像头截图，只要再加上zxing（或其它能从图片中解析二维码的组件），就能从图像中解析出二维码，实现代码如下：<br /></span><span class="Apple-style-span" style="font-size: 12px; "><br />
</span>
<div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080; ">&nbsp;1</span>&nbsp;<span style="color: #0000FF; ">package</span>&nbsp;com.pengo.capture;<br />
<span style="color: #008080; ">&nbsp;2</span>&nbsp;<br />
<span style="color: #008080; ">&nbsp;3</span>&nbsp;<span style="color: #0000FF; ">import</span>&nbsp;javax.swing.JFrame;<br />
<span style="color: #008080; ">&nbsp;4</span>&nbsp;<span style="color: #0000FF; ">import</span>&nbsp;java.awt.BorderLayout;<br />
<span style="color: #008080; ">&nbsp;5</span>&nbsp;<span style="color: #0000FF; ">import</span>&nbsp;java.awt.Dimension;<br />
<span style="color: #008080; ">&nbsp;6</span>&nbsp;<span style="color: #0000FF; ">import</span>&nbsp;java.awt.Graphics2D;<br />
<span style="color: #008080; ">&nbsp;7</span>&nbsp;<span style="color: #0000FF; ">import</span>&nbsp;java.awt.image.BufferedImage;<br />
<span style="color: #008080; ">&nbsp;8</span>&nbsp;<span style="color: #0000FF; ">import</span>&nbsp;java.io.InputStream;<br />
<span style="color: #008080; ">&nbsp;9</span>&nbsp;<span style="color: #0000FF; ">import</span>&nbsp;javax.media.MediaLocator;<br />
<span style="color: #008080; ">10</span>&nbsp;<span style="color: #0000FF; ">import</span>&nbsp;javax.swing.JPanel;<br />
<span style="color: #008080; ">11</span>&nbsp;<span style="color: #0000FF; ">import</span>&nbsp;javazoom.jl.player.Player;<br />
<span style="color: #008080; ">12</span>&nbsp;<span style="color: #0000FF; ">import</span>&nbsp;com.google.zxing.BinaryBitmap;<br />
<span style="color: #008080; ">13</span>&nbsp;<span style="color: #0000FF; ">import</span>&nbsp;com.google.zxing.LuminanceSource;<br />
<span style="color: #008080; ">14</span>&nbsp;<span style="color: #0000FF; ">import</span>&nbsp;com.google.zxing.MultiFormatReader;<br />
<span style="color: #008080; ">15</span>&nbsp;<span style="color: #0000FF; ">import</span>&nbsp;com.google.zxing.Result;<br />
<span style="color: #008080; ">16</span>&nbsp;<span style="color: #0000FF; ">import</span>&nbsp;com.google.zxing.common.HybridBinarizer;<br />
<span style="color: #008080; ">17</span>&nbsp;<br />
<span style="color: #008080; ">18</span>&nbsp;<span style="color: #0000FF; ">import</span>&nbsp;net.sf.fmj.ui.application.CaptureDeviceBrowser;<br />
<span style="color: #008080; ">19</span>&nbsp;<span style="color: #0000FF; ">import</span>&nbsp;net.sf.fmj.ui.application.ContainerPlayer;<br />
<span style="color: #008080; ">20</span>&nbsp;<span style="color: #0000FF; ">import</span>&nbsp;net.sf.fmj.ui.application.PlayerPanelPrefs;<br />
<span style="color: #008080; ">21</span>&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">class</span>&nbsp;CameraFrame2&nbsp;<span style="color: #0000FF; ">extends</span>&nbsp;JFrame{<br />
<span style="color: #008080; ">22</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">private</span>&nbsp;<span style="color: #0000FF; ">static</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;num&nbsp;=&nbsp;0;<br />
<span style="color: #008080; ">23</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;CameraFrame2()&nbsp;<span style="color: #0000FF; ">throws</span>&nbsp;Exception{<br />
<span style="color: #008080; ">24</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">this</span>.setTitle("摄像头截图应用");<br />
<span style="color: #008080; ">25</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">this</span>.setSize(480,&nbsp;500);<br />
<span style="color: #008080; ">26</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">this</span>.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);<br />
<span style="color: #008080; ">27</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">final</span>&nbsp;JPanel&nbsp;cameraPanel&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;JPanel();<br />
<span style="color: #008080; ">28</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">this</span>.getContentPane().setLayout(<span style="color: #0000FF; ">new</span>&nbsp;BorderLayout());<br />
<span style="color: #008080; ">29</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">this</span>.getContentPane().add(cameraPanel,&nbsp;BorderLayout.CENTER);<br />
<span style="color: #008080; ">30</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ContainerPlayer&nbsp;containerPlayer&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;ContainerPlayer(cameraPanel);<br />
<span style="color: #008080; ">31</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MediaLocator&nbsp;locator&nbsp;=&nbsp;CaptureDeviceBrowser.run(<span style="color: #0000FF; ">null</span>);&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">弹出摄像头设备选择</span><span style="color: #008000; "><br />
</span><span style="color: #008080; ">32</span>&nbsp;<span style="color: #008000; "></span><br />
<span style="color: #008080; ">33</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PlayerPanelPrefs&nbsp;prefs&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;PlayerPanelPrefs();<br />
<span style="color: #008080; ">34</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;containerPlayer.setMediaLocation(locator.toExternalForm(),&nbsp;prefs.autoPlay);<br />
<span style="color: #008080; ">35</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">36</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;Thread()&nbsp;{<br />
<span style="color: #008080; ">37</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;run()&nbsp;{<br />
<span style="color: #008080; ">38</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">while</span>&nbsp;(<span style="color: #0000FF; ">true</span>)&nbsp;{<br />
<span style="color: #008080; ">39</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">try</span>&nbsp;{<br />
<span style="color: #008080; ">40</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Thread.sleep(1000);<br />
<span style="color: #008080; ">41</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dimension&nbsp;imageSize&nbsp;=&nbsp;cameraPanel.getSize();<br />
<span style="color: #008080; ">42</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BufferedImage&nbsp;image&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;BufferedImage(<br />
<span style="color: #008080; ">43</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;imageSize.width,&nbsp;imageSize.height,<br />
<span style="color: #008080; ">44</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BufferedImage.TYPE_INT_ARGB);<br />
<span style="color: #008080; ">45</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Graphics2D&nbsp;g&nbsp;=&nbsp;image.createGraphics();<br />
<span style="color: #008080; ">46</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cameraPanel.paint(g);<br />
<span style="color: #008080; ">47</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g.dispose();<br />
<span style="color: #008080; ">48</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LuminanceSource&nbsp;source&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;BufferedImageLuminanceSource(<br />
<span style="color: #008080; ">49</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;image);<br />
<span style="color: #008080; ">50</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BinaryBitmap&nbsp;bitmap&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;BinaryBitmap(<br />
<span style="color: #008080; ">51</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;HybridBinarizer(source));<br />
<span style="color: #008080; ">52</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Result&nbsp;result;<br />
<span style="color: #008080; ">53</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;MultiFormatReader().decode(bitmap);<br />
<span style="color: #008080; ">54</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("二维码====:"&nbsp;+&nbsp;result.getText());<br />
<span style="color: #008080; ">55</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InputStream&nbsp;is&nbsp;=&nbsp;CameraFrame.<span style="color: #0000FF; ">class</span>.getClassLoader().getResourceAsStream("resource/beep.mp3");<br />
<span style="color: #008080; ">56</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Player&nbsp;player&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;Player(is);<br />
<span style="color: #008080; ">57</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;player.play();<br />
<span style="color: #008080; ">58</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<span style="color: #0000FF; ">catch</span>&nbsp;(Exception&nbsp;re)&nbsp;{<br />
<span style="color: #008080; ">59</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;re.printStackTrace();<br />
<span style="color: #008080; ">60</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">61</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">62</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">63</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}.start();<br />
<span style="color: #008080; ">64</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">65</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<span style="color: #008080; ">66</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">static</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;main(String[]&nbsp;args)&nbsp;<span style="color: #0000FF; ">throws</span>&nbsp;Exception{<br />
<span style="color: #008080; ">67</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CameraFrame2&nbsp;camera&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;CameraFrame2();<br />
<span style="color: #008080; ">68</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;camera.setVisible(<span style="color: #0000FF; ">true</span>);<br />
<span style="color: #008080; ">69</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<span style="color: #008080; ">70</span>&nbsp;}</div>
</div>
<br />
<div>最后来张效果图（本图仅供参考）</div>
<img src="http://www.blogjava.net/images/blogjava_net/pengo/2012.09.10.camera.jpg" alt="" /><br /><div><br /><span style="font-size: 12pt; ">要想识别效果好点，摄像头像素最好500W以上，</span></div><span style="font-size: 12pt; ">
活动二维码签到、物品扫描，只需扛台手提，再加个高清摄像头就行了。
</span><img src ="http://www.blogjava.net/pengo/aggbug/387428.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pengo/" target="_blank">penngo</a> 2012-09-10 23:50 <a href="http://www.blogjava.net/pengo/archive/2012/09/10/387428.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>手机无线鼠标软件“远程Touch”安装使用</title><link>http://www.blogjava.net/pengo/archive/2011/10/08/360132.html</link><dc:creator>penngo</dc:creator><author>penngo</author><pubDate>Sat, 08 Oct 2011 05:35:00 GMT</pubDate><guid>http://www.blogjava.net/pengo/archive/2011/10/08/360132.html</guid><wfw:comment>http://www.blogjava.net/pengo/comments/360132.html</wfw:comment><comments>http://www.blogjava.net/pengo/archive/2011/10/08/360132.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pengo/comments/commentRss/360132.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pengo/services/trackbacks/360132.html</trackback:ping><description><![CDATA[<p><span style="font-family:黑体">先来个简介<br />
</span><span style="font-family:宋体;">远程</span>Touch<span style="font-family:宋体;">是一款把</span>android<span style="font-family:宋体;">手机变成电脑的无线鼠标、无线触摸板软件。通过</span>WIFI<span style="font-family:宋体;">，使手机与电脑相连，远程控制电脑，也可以当做投影片简报控制小工具。软件分为</span>pc<span style="font-family:宋体;">端和手机端。支持</span>android 2.1<span style="font-family:宋体;">、</span>2.2<span style="font-family:宋体;">、</span>2.3<span style="font-family: 宋体; ">平台</span></p>
<p><span style="font-family:黑体">pc</span><font class="Apple-style-span" face="黑体">端下载地址<br />
</font>华军：<a href="http://www.newhua.com/soft/118119.htm" title="http://www.newhua.com/soft/118119.htm" target="_blank">http://www.newhua.com/soft/118119.htm</a><br />
其它：<a href="http://colorcat.googlecode.com/files/motouch_pc.zip">http://colorcat.googlecode.com/files/motouch_pc.zip</a></p>
<p><span style="font-family:黑体">手机端下载地址<br />
</span><span style="font-family:宋体;">优亿：</span><a href="http://www.eoemarket.com/apps/43836">http://www.eoemarket.com/apps/43836<br />
</a><span style="font-family:宋体;">其它：</span><a href="http://colorcat.googlecode.com/files/motouch_android.apk">http://colorcat.googlecode.com/files/motouch_android.apk</a></p>
<p><font class="Apple-style-span" face="黑体"></font></p>
<div>
<p><font class="Apple-style-span" face="黑体"><span style="font-family:黑体">安装使用<br />
</span></font>1、先把手机和PC连上同一个WIFI网络。<br />
2、运行PC端，软件截图</p>
</div>
<p><a href="http://colorcat.googlecode.com/files/motouch_android.apk">
<img src="http://www.blogjava.net/images/blogjava_net/pengo/2011.10.07.motouch_pc.jpg" width="230" height="230" alt="" />
</a></p>
如果PC装有多个网上卡，会显示多个IP的情况。<br />
<br />
3、运行手机端程序，软件截图<br />
<img src="http://www.blogjava.net/images/blogjava_net/pengo/2011.10.07.motouch_android1.jpg" width="253" height="412" alt="" /><br />
在主机IP、密码、端口三个框中输入与PC端一样的值，点击&#8220;连接按&#8221;钮，进入控制界面。（<span style="color: #ff0000; ">注：主机IP请输入PC端同一网内的IP，如192.168.1.10与192.168.1.157为同一网内IP</span>）<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/pengo/2011.10.07.motouch_android2.jpg" alt="" /><br />
面板上边三个键分别为鼠标左键、滑轮、右键，左、右键可直接点击控制鼠标的同样的点击操作，滑轮通过手指在键上滑动控制鼠标滑轮的滚动操作。面板下边黑色区域通过手指滑动控制鼠标移动操作。<img src ="http://www.blogjava.net/pengo/aggbug/360132.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pengo/" target="_blank">penngo</a> 2011-10-08 13:35 <a href="http://www.blogjava.net/pengo/archive/2011/10/08/360132.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DBDesigner开发记录（1）</title><link>http://www.blogjava.net/pengo/archive/2011/04/05/347643.html</link><dc:creator>penngo</dc:creator><author>penngo</author><pubDate>Tue, 05 Apr 2011 15:17:00 GMT</pubDate><guid>http://www.blogjava.net/pengo/archive/2011/04/05/347643.html</guid><wfw:comment>http://www.blogjava.net/pengo/comments/347643.html</wfw:comment><comments>http://www.blogjava.net/pengo/archive/2011/04/05/347643.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/pengo/comments/commentRss/347643.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pengo/services/trackbacks/347643.html</trackback:ping><description><![CDATA[公司的离职申请清明前批下来了，再过一小段时间就能离开，之前参加了几个公司的公开招聘会，可惜都没有通过，现在要继续找新公司。这段时间空闲时，一直在写dbdesigner的代码，本以为很快的就能把可视化建模部分开发完成，谁知还是挺费时间，费了一长段时间，现在已经做出了可视化建模的基本效果（离完善还有段距离），放出来给大家看下。<br />
新建一个表<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/pengo/2011.04.05.db1.jpg" width="678" height="439" /><br />
<br />
配置表字段<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/pengo/2011.04.05.db2.jpg" width="718" height="464" /><br />
<br />
配置表之间连接<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/pengo/2011.04.05.db3.jpg" width="719" height="575" /><br />
<br />
建好后的效果图<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/pengo/2011.04.05.db4.jpg" width="634" height="383" /><br />
<br />
下一步将继续完善现在的功能代码和进行实体类生成的开发。实体类生成分两种情况，一种是根据dbdesigner的模型生成实体类，另一种是根据现有数据库表生成实体类，目前暂只考虑基于hibernate的实体类的生成。<br />
<br />
运行程序:<a title="DBDesigner.jar" href="http://download.csdn.net/source/3161948" target="_blank">DBDesigner.jar</a> 
<img src ="http://www.blogjava.net/pengo/aggbug/347643.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pengo/" target="_blank">penngo</a> 2011-04-05 23:17 <a href="http://www.blogjava.net/pengo/archive/2011/04/05/347643.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ColorCat终于在华军审核通过发布了</title><link>http://www.blogjava.net/pengo/archive/2011/03/04/345682.html</link><dc:creator>penngo</dc:creator><author>penngo</author><pubDate>Fri, 04 Mar 2011 03:09:00 GMT</pubDate><guid>http://www.blogjava.net/pengo/archive/2011/03/04/345682.html</guid><wfw:comment>http://www.blogjava.net/pengo/comments/345682.html</wfw:comment><comments>http://www.blogjava.net/pengo/archive/2011/03/04/345682.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pengo/comments/commentRss/345682.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pengo/services/trackbacks/345682.html</trackback:ping><description><![CDATA[ColorCat终于在华军审核通过发布了。<br />
华军下载地址：<a title="http://www.onlinedown.net/soft/112934.htm" href="http://www.onlinedown.net/soft/112934.htm" target="_blank">http://www.onlinedown.net/soft/112934.htm</a><br />
项目主页：<a title="http://code.google.com/p/colorcat/" href="http://code.google.com/p/colorcat/" target="_blank">http://code.google.com/p/colorcat/</a><br />
源码下载：<a title="http://colorcat.googlecode.com/svn/trunk/" href="http://colorcat.googlecode.com/svn/trunk/" target="_blank">http://colorcat.googlecode.com/svn/trunk/</a>&nbsp;（需要SVN客户端）<br />
<br />
安装包的制作方法是：<a title="为java桌面程序制作安装向导程序" href="http://www.blogjava.net/pengo/archive/2010/03/12/315278.html">为java桌面程序制作安装向导程序</a> ，有点蛋疼的是把jre也打进了安装包，整个安装包体积达到惊人的23M，我写的代码也才不过10K。<br />
平时经常上华军、天空下载软件，现在华军上看到有自己写的软件，虽然ColorCat这工具写得一般，不过心情感觉很好。在华军、天空上找了下同类的小工具，功能上基本都是屏幕取色、颜色板调色、常用配色、颜色转换这四个方面，后期有空再把这小工具做完整点，不知jdk7哈时候能正式发布，据说swing速度提升了一个层次。到时有空用java来开发小工具，会更爽。
<p><br />
不知dbdesigner哈时候能出个beta版，现在大家都各自忙着，少有空闲时间来搞它。</p>
<img src ="http://www.blogjava.net/pengo/aggbug/345682.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pengo/" target="_blank">penngo</a> 2011-03-04 11:09 <a href="http://www.blogjava.net/pengo/archive/2011/03/04/345682.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>调色取色工具ColorCat（更新）</title><link>http://www.blogjava.net/pengo/archive/2011/02/15/344311.html</link><dc:creator>penngo</dc:creator><author>penngo</author><pubDate>Mon, 14 Feb 2011 17:32:00 GMT</pubDate><guid>http://www.blogjava.net/pengo/archive/2011/02/15/344311.html</guid><wfw:comment>http://www.blogjava.net/pengo/comments/344311.html</wfw:comment><comments>http://www.blogjava.net/pengo/archive/2011/02/15/344311.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/pengo/comments/commentRss/344311.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pengo/services/trackbacks/344311.html</trackback:ping><description><![CDATA[ColorCat是我自己开发（<a title="http://www.blogjava.net/pengo/archive/2011/01/16/343064.html" href="http://www.blogjava.net/pengo/archive/2011/01/16/343064.html">http://www.blogjava.net/pengo/archive/2011/01/16/343064.html</a>）的调色取色工具，在需要给网页或程序配色时，如给table、div等等设置背景、边框线条颜色之类，限于自己的美工水平，经常直接使用屏幕取色软件、或使用其它软件的调色板配色、或使用网上现成的配色方案，ColorCat就是把我开发时用到的方法集合起来，提供屏幕取色、调色板、一些常用的配色选择和颜色转换功能，写成软件方便自己开发时使用，已在上次的版本上增加调色板和配色方案，代码可能还存在BUG，现在是边使用边修改。下面看效果图，代码照旧在文章未尾提供下载链接。<br />
<br />
屏幕取色<br />
<img alt="http://www.blogjava.net/pengo/" src="http://www.blogjava.net/images/blogjava_net/pengo/2011.02.15.1ColorCat.jpg" width="308" height="249" /><br />
<br />
调色板配色<br />
<img alt="http://www.blogjava.net/pengo/" src="http://www.blogjava.net/images/blogjava_net/pengo/2011.02.15.2ColorCat.jpg" width="469" height="449" /><br />
<br />
常用配色选择（以后可能会提供更多的常用配色方案）<br />
<img alt="http://www.blogjava.net/pengo/" src="http://www.blogjava.net/images/blogjava_net/pengo/2011.02.15.3ColorCat.jpg" width="469" height="569" /><br />
<br />
颜色值转换（HTML、RGB互转）<br />
<img alt="http://www.blogjava.net/pengo/" src="http://www.blogjava.net/images/blogjava_net/pengo/2011.02.15.4ColorCat.jpg" width="415" height="296" /><br />
<br />
代码已经放在Google Code,SVN下载地址<a title="https://colorcat.googlecode.com/svn/trunk" href="https://colorcat.googlecode.com/svn/trunk" target="_blank">https://colorcat.googlecode.com/svn/trunk</a><br />
可运行程序:<a title="ColorCat.jar" href="http://download.csdn.net/source/3022295">ColorCat.jar</a><br />
安装包下载地址：<a href="http://code.google.com/p/colorcat/downloads/list">http://code.google.com/p/colorcat/downloads/list</a>
<img src ="http://www.blogjava.net/pengo/aggbug/344311.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pengo/" target="_blank">penngo</a> 2011-02-15 01:32 <a href="http://www.blogjava.net/pengo/archive/2011/02/15/344311.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>数据库建模工具</title><link>http://www.blogjava.net/pengo/archive/2011/02/10/344004.html</link><dc:creator>penngo</dc:creator><author>penngo</author><pubDate>Wed, 09 Feb 2011 16:11:00 GMT</pubDate><guid>http://www.blogjava.net/pengo/archive/2011/02/10/344004.html</guid><wfw:comment>http://www.blogjava.net/pengo/comments/344004.html</wfw:comment><comments>http://www.blogjava.net/pengo/archive/2011/02/10/344004.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/pengo/comments/commentRss/344004.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pengo/services/trackbacks/344004.html</trackback:ping><description><![CDATA[<p>最近参与了一个数据库建模的开源项目，主要功能是以可视化的方式建立数据库的物理模型和生成hibernate的实体类，支持pdm格式，并提供eclipse插件和netbean插件等等。</p>
<p>这项目是和网友聊天时组织起来的，当时大家在讨论开发的问题，刚好我说到平时使用powerdesigner来设计数据库，生成数据库表，再用netbeans根据数据库生成带hibernate的实体类；有网友说做过根据数据库表生成实体类的功能；也有网友做过eclipse的ssh插件。。。结果大家讨论后，就提出做开源的数据库建模工具，提供可视化建模、生成实体类、生成单表操作的Dao等等功能，提供更方便的开发设计。</p>
<p>目前这项目主要是针对swing版的建模工具开发。春节休假期间做了部分功能（功能暂未完整实现），主要负责可视化建模功能的实现，下面发效果图给大家看下，源码在本文末。<br />
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/pengo/2011.02.10.DB1.jpg" width="500" height="300" /><br />
<br />
<img border="0" alt="pengo" src="http://www.blogjava.net/images/blogjava_net/pengo/2011.02.10.DB2.jpg" width="500" height="299" /><br />
<br />
<img border="0" alt="pengo" src="http://www.blogjava.net/images/blogjava_net/pengo/2011.02.10.DB3.jpg" width="500" height="298" /><br />
<br />
<img border="0" alt="pengo" src="http://www.blogjava.net/images/blogjava_net/pengo/2011.02.10.DB4.jpg" width="500" height="299" /><br />
<br />
源码：<a title="dbdesigner.rar" href="http://download.csdn.net/source/3015143">dbdesigner.rar</a></p>
<img src ="http://www.blogjava.net/pengo/aggbug/344004.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pengo/" target="_blank">penngo</a> 2011-02-10 00:11 <a href="http://www.blogjava.net/pengo/archive/2011/02/10/344004.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>屏幕取色工具ColorCat</title><link>http://www.blogjava.net/pengo/archive/2011/01/16/343064.html</link><dc:creator>penngo</dc:creator><author>penngo</author><pubDate>Sun, 16 Jan 2011 09:38:00 GMT</pubDate><guid>http://www.blogjava.net/pengo/archive/2011/01/16/343064.html</guid><wfw:comment>http://www.blogjava.net/pengo/comments/343064.html</wfw:comment><comments>http://www.blogjava.net/pengo/archive/2011/01/16/343064.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/pengo/comments/commentRss/343064.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/pengo/services/trackbacks/343064.html</trackback:ping><description><![CDATA[ColorCat是俺写的一个小工具，主要是用于获取屏幕上任一显示点的颜色,小巧的屏幕取色工具，能在屏幕上抓取任何你要的颜色，并转成RGB和十六进制颜色数值。<br />
以前一直是用别人写的屏幕取色工具。不过某一天偶然看到jdk里面java.awt.Robot有个方法getPixelColor(x, y)可以获取屏幕某点坐标的颜色值，当时立即想到把它和之前写的鼠标钩子<a title="http://www.blogjava.net/pengo/archive/2010/12/17/340938.html" href="http://www.blogjava.net/pengo/archive/2010/12/17/340938.html" target="_blank">http://www.blogjava.net/pengo/archive/2010/12/17/340938.html</a>结合，花了点时间做出了这个屏幕取色工具软件，并起了个名ColorCat。<br />
代码的实现很简单，只需把鼠标钩子的实现http://www.blogjava.net/pengo/archive/2010/12/17/340938.html这篇文章的callback方法修改一下就行了，修改部分代码如下，具体的源码，需要的可以自己下载文章结尾的附件。<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;LRESULT&nbsp;callback(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;nCode,&nbsp;WPARAM&nbsp;wParam,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOUSEHOOKSTRUCT&nbsp;info)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(nCode&nbsp;</span><span style="color: #000000">&gt;=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;x&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;info.pt.x;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;y&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;info.pt.y;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;textField_X.setText(String.valueOf(x));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;textField_Y.setText(String.valueOf(y));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Color&nbsp;color&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;robot.getPixelColor(x,&nbsp;y);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">switch</span><span style="color: #000000">&nbsp;(wParam.intValue())&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">case</span><span style="color: #000000">&nbsp;MainWindow.WM_MOUSEMOVE:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cruColor.setBackground(color);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">break</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">case</span><span style="color: #000000">&nbsp;MainWindow.WM_LBUTTONDOWN:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(isColor)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;textField_Red.setText(String.valueOf(color<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.getRed()));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;textField_Green.setText(String.valueOf(color<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.getGreen()));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;textField_Blue.setText(String.valueOf(color<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.getBlue()));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;selectColor.setBackground(color);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;red&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;MainWindow.decimalToHex(color<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.getRed());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;green&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;MainWindow.decimalToHex(color<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.getGreen());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;blue&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;MainWindow.decimalToHex(color<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.getBlue());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;textField_Html<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.setText(</span><span style="color: #000000">"</span><span style="color: #000000">#</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;red&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;green&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;blue);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">break</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">case</span><span style="color: #000000">&nbsp;MainWindow.WM_MBUTTONDOWN:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">break</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">case</span><span style="color: #000000">&nbsp;MainWindow.WM_MBUTTONUP:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">break</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;lib.CallNextHookEx(hhk,&nbsp;nCode,&nbsp;wParam,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;info.getPointer());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></div>
<br />
window下运行效果:<br />
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/pengo/2011.01.16.2ColorCat.jpg" width="308" height="165" /><br />
<br />
目前只实现了最简单的取色功能，等有时间，把调色板和颜色值转换的功能也加上，让这工具在以后的开发中更实用。如果其他人有好的功能建议，也可告诉我修改^_^。<br />
<br />
运行程序:<a title="ColorCat.jar" href="http://download.csdn.net/source/2986578" target="_blank">ColorCat.jar</a>&nbsp;(需要jre6)<br />
源码:<a title="ColorCat.src" href="http://download.csdn.net/source/2986576" target="_blank">ColorCat.src</a>。 
<img src ="http://www.blogjava.net/pengo/aggbug/343064.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/pengo/" target="_blank">penngo</a> 2011-01-16 17:38 <a href="http://www.blogjava.net/pengo/archive/2011/01/16/343064.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>