Learn the core language well and then learn about best practices.
Understand the limitations of the language and look for ways to improve on this. Apache Commons is a good source of knowledge for this.
After that, understand and learn concurrency with Java and the underlying memory model.
- If you need to learn a GUI framework then look at Swing or Eclipse SWT.
- If you need to learn a web application framework then pick one of the hundreds out there. I suggest looking at SpringMVC or Struts 2.