【问题标题】:How to show a captcha in a java swing application如何在 java swing 应用程序中显示验证码
【发布时间】:2023-04-02 17:00:02
【问题描述】:

我需要在 java swing 应用程序中添加验证码。我一直在搜索一些库(JCaptcha 和 SimpleCatcha),但它们是用于 Web 开发的。

是否有任何图书馆可以在摇摆时使用验证码?如果不是,是否有带有一些验证码字符的网页或存储库来实现我自己的验证码?

非常感谢您的时间和帮助。

提前致谢。

【问题讨论】:

  • 好问题——我确实找到了另一个类似的问题,其中答案谈到了 jCaptcha:stackoverflow.com/questions/6219029/captcha-library-for-swing——我可以问一下在摇摆应用程序中验证码的目的是什么?
  • @ametren:如果 Swing 应用程序是 Web 应用程序的前端,我不明白为什么使用验证码不会像在浏览器中那样有用。
  • @JBNizet 是的,我可以看出这一点,但这似乎给我提出了更多问题——例如,为什么你会用一个 Swing 应用程序来前端一个 Web 应用程序?我不是想说服提问者,只是想了解用例。
  • 感谢您的回答,我正在 java swing 中实现一个登录窗口来登录我的系统。我希望验证码能够防止与我的服务器系统的多重连接。

标签: java swing captcha


【解决方案1】:
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

【讨论】:

    【解决方案2】:

    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-alpha1 中,有这样的:http://jcaptcha.sourceforge.net/apidocs/2.0-alpha1/com/octo/captcha/service/image/AbstractManageableImageCaptchaService.html#getImageChallengeForID(java.lang.String)

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

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

    【讨论】:

    • 嗨 Guillaume,我尝试了您的回答并且效果很好,非常感谢您的帮助,只是我必须更改将验证码图像放入标签的方式:BufferedImage imgCaptcha = servicioCaptcha.getImageChallengeForID(" "+id);
    • 谢谢!!!它有效,因此仅验证一个必须使用 DefaultManageableImageCaptchaService::validateResponseForID(""+id, this.txtCaptcha.getText());谢谢我非常感谢你的帮助
    猜你喜欢
    • 2014-11-22
    • 2012-08-05
    • 2012-11-23
    • 2016-03-28
    • 2020-12-06
    • 2010-09-20
    • 2010-11-23
    • 2010-10-23
    相关资源
    最近更新 更多