Bringing life to Swing desktop applications - all you need to know