come with me, on the way I'll explain.
Gravatar with JavaFX
Gravatar is easy way to put global recognized avatar images into any Internet application. Gravatar would stands for globally recognized avatar.
Below, the Java class that I got from the Gravatar Java reference. Here is a static class called md5 that applies a MD5Sum algorithm over a string. Is a little complex code but all behavior keeps encapsulated and who uses it don’t need to know how it works. Just gives a string and receives a encrypted string. Those two codes are also a good example of how calling Java classes inside a JavaFX code.
package gravatarexample; import java.security.MessageDigest; import java.io.UnsupportedEncodingException; import java.security.NoSuchAlgorithmException; public class MD5 { public static String toHex(String message) { try { MessageDigest md = MessageDigest.getInstance("MD5"); byte array[] = md.digest(message.getBytes("CP1252")); StringBuffer sb = new StringBuffer(); for (int i = 0; i < array.length; ++i) { sb.append(Integer.toHexString((array[i]&0xFF)|0x100).substring(1, 3)); } return sb.toString(); } catch (NoSuchAlgorithmException e) { } catch (UnsupportedEncodingException e) { } return null; } }
As a Java class in the same package, any JavaFX (or Java) code can call it without any problem. Just to keep the code more clear I’m importing it explicitly. Is this example I also create some Swing interface to give user the option to put his mail, adjust the image size and get a output direct link or html image tag.
package gravatarexample; import gravatarexample.MD5; import javafx.ext.swing.SwingButton; import javafx.ext.swing.SwingSlider; import javafx.ext.swing.SwingTextField; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.scene.layout.VBox; import javafx.scene.Scene; import javafx.stage.Stage; var mail = "Email"; var key = ""; function gravatalize(mail:String, size: Integer): String { return "http://www.gravatar.com/avatar/{MD5.toHex(mail)}?s={size}" } var inputtxt = SwingTextField { columns: 20 text: mail } var slider = SwingSlider { minimum: 10 maximum: 128 value: 100 vertical: false } var button = SwingButton { text: "Get Gravatar" action: function() { key = gravatalize(inputtxt.text, slider.value); directoutput.text = key; htmloutput.text = "<img src="{key}" alt="\"gravatar\"" />"; photo.image = Image { backgroundLoading: true, url: key}; } } var photo:ImageView = ImageView { image: null } var directoutput = SwingTextField { columns: 20 text: "direct link image" } var htmloutput = SwingTextField { columns: 20 text: "html tag image" } Stage { title: "Gravatar" width: 300 height: 340 scene: Scene { content: [ VBox { spacing: 10 content: [inputtxt, slider, button, directoutput, htmloutput, photo] }, ] } }
The string itself is assembled in the gravatalize function. You give a mail and it’s returns a Gravatar direct link to the image. There’s many cool ways to use together Gravatar and a JavaFX Internet application.













22 December, 2008 - 7:40 pm
Hi,
really nice, would be helpful for some social networking application.
4 January, 2009 - 5:03 am
Actually I’m confusing about this. May you write in detail Gravatar with JavaFX what for, how it work, and what benefit with it? Sorry to trouble you. Thanks for the info.
4 January, 2009 - 10:02 am
@iskandarX With JavaFX you can create a broad kind of dynamic animated internet applications. You can mix JavaFX and Gravatar to create applications where you can easily get a image avatar of your user and user friends, making it more social. That’s the benefit of Gravatar, not JavaFX. This example I wrote show you how to get this benefit using JavaFX.
3 February, 2009 - 6:21 am
CooL!! Buddy….
12 February, 2009 - 5:30 am
so what exactly would the diffrence be , it seems complicated using html
3 March, 2009 - 6:50 am
cool site.
28 April, 2009 - 3:49 pm
Cool, it’s totally above my level of understanding. Way to go guys, only a PhD could understand this code.
29 May, 2009 - 2:21 am
Hi Silveira,
Thanks for sharing this, thanks to your code, I was able to use gravatar in flash, check it out, http://punkscum.org/files/gravatar/gravatar.html, (right click for source). Cheers