I have messed around with JAVA for some time now and have never figured out how to make my little programs standalone applications that I can distribute. How do I go about making a JAVA application distributable, so that someone can double click on its icon (still got to figure out how to make those too) and the program starts.

Also, does anyone know of a window creator for JAVA? I am kind of tired of writing all of the windowing code that my apps require.