Stanford University has an EXCELLENT
intro to programming/java class available for free online. The lectures are available via a very slow Torrent, or on YouTube. Here is the YouTube playlist. http://www.youtube.com/view_play_list?p=84A56BC7F4A1F852&search_query=cs106a
Once you finish the lectures and excercises you will be able to write basic and moderately complex applications. Unfortunately the ACM classes from the lectures are not widely used outside of learning environments. For me, the next step was to stumble through a book on the much-more-common Java GUI classes and learn the Form builder in Eclipse.
Worth Doing +1