2012-07-16 82 views
5

我需要在java swing应用程序中添加验证码验证程序。我一直在寻找一些图书馆(JCaptcha和SimpleCatcha),但他们是为了网络开发。如何在java swing应用程序中显示验证码

有任何图书馆使用captcha在秋千上?如果它不是,是否有一个网页或存储库与一些验证码字符来实现我自己的验证码?

我真的很感谢你的时间和你的帮助。

在此先感谢。

+4

好问题 - 我发现这个其他类似的问题,其中约JCaptcha的答案会谈:http://stackoverflow.com/questions/6219029/captcha-library-for-swing - 我会问我什么在一个摇摆应用程序中的验证码的目的是? – ametren 2012-07-16 18:57:24

+1

@ametren:如果Swing应用程序是Web应用程序的前端,我不明白为什么使用CAPTCHA不如浏览器那么有用。 – 2012-07-16 19:04:28

+0

@JBNizet Ya,我可以看到这一点,但它似乎只是为我提出了更多的问题 - 比如说,为什么你会用一个swing应用程序前端一个web应用程序?我并不是试图说出提问者,只是试图理解用例。 – ametren 2012-07-16 19:11:38

回答

4

JCaptcha可以返回一个BufferedImage。从那里,它没有太多难以用一个JLabel来获得图像可见:

BufferedImage captcha = // Get the captcha 
// See also com.octo.captcha.service.image.AbstractManageableImageCaptchaService.getImageChallengeForID(String) 
JLabel label = new JLabel(new ImageIcon(captcha)); 
// ... add that label to a visible container of your Swing application 

在1.0版本中,您可以使用此:http://jcaptcha.sourceforge.net/apidocs/1.0/com/octo/captcha/service/image/AbstractManageableImageCaptchaService.html

在2.0-α1,有是这样的:http://jcaptcha.sourceforge.net/apidocs/2.0-alpha1/com/octo/captcha/service/image/AbstractManageableImageCaptchaService.html#getImageChallengeForID(java.lang.String)

您还可以使用额外的Locale参数来检查这些方法的重载版本。

在每种情况下,都有一个默认实现类DefaultManageableImageCaptchaService

+0

非常感谢!我要去尝试一下,我会发布我是如何做到的。 – Herman 2012-07-17 04:25:46

+0

嗨Guillaume,我试过你的答案,工作得很好,我真的很感谢你的帮助,只有我不得不改变方式把标签中的验证码图像:BufferedImage imgCaptcha = servicioCaptcha.getImageChallengeForID(“”+ id); – Herman 2012-07-17 05:59:06

+0

谢谢!它的工作原理,所以只验证一个使用DefaultManageableImageCaptchaService :: validateResponseForID(“”+ id,this.txtCaptcha.getText());谢谢我真的很感谢你的帮助 – Herman 2012-07-17 06:00:18

0
BufferedImage captcha = // Get the captcha 

// See also 
com.octo.captcha.service.image.AbstractManageableImageCaptchaService.getImageChallengeForID(String) 

JLabel label = new JLabel(new ImageIcon(captcha)); 
// ... add that label to a visible container of your Swing application 
相关问题