You really need to start by looking at the idea of "Patterns". The seminal book for this is "Design Patterns" by Gamma et. al. This is a bit academic to start with, especially if you already have some running code which you want to "design" after the fact.
Luckily, help is at hand. The top recommendation is "Refactoring" by Martin Fowler. I also recommend "The Pragmatic Programmer" by Hunt and Thomas for lots of good, solid working practices, and "Extreme Programming Explained" by Beck for an introduction on how to cope with developing software in a world of changing requirements.
If you haven't already done so, check out the books in "the bunkhouse". If you click through from there and buy some books from Amazon, then the
Java Ranch gets a small kickback.