learning needs time and energy, so it needs motivation. There are different options, depending on your preferences.
Anyway, it seems that it's time for a little more theory.
If you want to continue in the Object-Oriented world I would recommend to read:
"Object-Oriented Software Construction" by Bertrand Meyer (After reading, you may also give Eiffel a try)
A book about Design Patterns in your preferred language.
If you are interested in other paradigms, I would suggest that you take a look at:
- Oz Mozart if you are ambitious
- Haskell, OCaml or a lisp flavour
If you want something more close to what you are doing, investigate Groovy who will integrate nicely with your Java code and will give you the opportunity to experiment more easily.
Finally, a few advices:
- stay informed but don't pay too much attention to the very latest buzz...
- think abstract: design for the paradygm (i.e. OO), not for the specific language
- read other people code, programming is crafwork, learn from your peers.
- read about good practices, they help you to avoid pitfalls of your language
- read regularly "Lambda the Ultimate"
And code, code, code... and enjoy.
Chris.