Swing Hacks: Tips and Tools for Killer GUIs