During my JavaPolis talk entitled Extreme Swing I explained how to create a JButton with a 3D icon. I should have done this before, but I finally uploaded the the source code and a webstart demo. You will need Java 1.5 or 1.6.
The source code is very simple, just take a look at the file
P.S: I'll find some time this week to write a lengthy entry explaining how I created the Twinkle demo. I will also present the (really) small API I am using for my Swing/OpenGL demos.