Here's an approach:
Work with someone that has used a design
pattern in your system. Have that person explain the implementation of the pattern to you and why they found it useful. Go read about the pattern.
Unfortunately, there's no Java-centric book on design patterns I can heartily recommend. The best source is the
Design Patterns book itself (Gamma, et al 1995). You might also find some useful sources on the web; hillside.net used to be a good resource.
Read the material on the pattern, particularly the motivation and consequences, but really just read everything. Read it again until you understand it. Understand why it was useful as a solution in your system. Understand what are all the implications of the various alternative implementations.
One other thing I've found useful is to build a pattern "reference implementation" that allows you to trace through the code to see what's really going on. I found this particularly useful for the somewhat confusing visitor pattern and all of its many variations.
You can't and you don't want to try and learn all the classic design patterns overnight. You also want to avoid using a pattern as a wedge--"I just learned about the composite pattern, so now I'll try to force a composite pattern into the problem I'm trying to solve."
-Jeff-