2012-07-16 24 views
5

Necesito agregar un validador de captcha en una aplicación java swing. He estado buscando algunas bibliotecas (JCaptcha y SimpleCatcha) pero están destinadas al desarrollo web.Cómo mostrar un captcha en una aplicación java swing

¿Hay alguna biblioteca para usar captcha en columpio? y si no lo es, ¿hay una página web o repositorio con algunos caracteres de captcha para implementar mi propio captcha?

Realmente aprecio su tiempo y su ayuda.

Gracias de antemano.

+4

Buena pregunta - me encontré esta otra pregunta similar en el que las conversaciones respuesta sobre jCaptcha: http://stackoverflow.com/questions/6219029/captcha-library-for-swing - ¿Puedo preguntar qué el propósito de un captcha en una aplicación de swing es? – ametren

+1

@ametren: si la aplicación Swing es un front-end de una aplicación web, no veo por qué usar CAPTCHAs no sería tan útil como en el navegador. –

+0

@JBNizet Ya puedo ver eso, pero parece que plantea más preguntas para mí, como, por ejemplo, ¿por qué vas a utilizar una aplicación web con una aplicación de swing? No estoy tratando de convencer al interlocutor, solo trato de entender el caso de uso. – ametren

Respuesta

4

JCaptcha puede devolver una Imagen Buffered. A partir de ahí que no es mucho difícil conseguir la imagen visible usando un 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 

En la versión 1.0, puede utilizar esto: http://jcaptcha.sourceforge.net/apidocs/1.0/com/octo/captcha/service/image/AbstractManageableImageCaptchaService.html

En 2,0-alfa1, no es este: http://jcaptcha.sourceforge.net/apidocs/2.0-alpha1/com/octo/captcha/service/image/AbstractManageableImageCaptchaService.html#getImageChallengeForID(java.lang.String)

También puede verificar la versión sobrecargada de esos métodos con un argumento adicional Locale.

En cada caso, hay una clase de implementación predeterminada DefaultManageableImageCaptchaService.

+0

¡Muchas gracias! Voy a intentarlo y publicaré cómo lo hice. – Herman

+0

Hola Guillaume, probé tu respuesta y funcionó bien, realmente aprecio tu ayuda, solo tuve que cambiar la forma de poner la imagen del captcha en la etiqueta: BufferedImage imgCaptcha = servicioCaptcha.getImageChallengeForID ("" + id); – Herman

+0

Gracias! funciona, así que solo para validar un mus use DefaultManageableImageCaptchaService :: validateResponseForID ("" + id, this.txtCaptcha.getText()); gracias, realmente aprecio tu ayuda – Herman

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 
Cuestiones relacionadas