To me there are really three separate aspects to being a good professional Java programmer, and while they do relate to one another, they can usually be learned somewhat independently once you have a basic knowledge of the language.
1. Object oriented design
This is IMO the most important and most difficult skill to learn as a Java developer. Getting to the point where you can effectively and efficiently decompose problems into objects and refractor existing code into a better design takes a long time. I've had a lot of great mentors and colleagues over the years who have helped me hone my skills in this area. If you're doing this all by yourself it's going to take a while to climb the learning curve.
I would think after a few months of consistently writing code and getting feedback on it you could reach the journeyman level. To become a master it takes years.
2. Tools
So much of modern Java development in a professional context is about being able to leverage tools. Go install Eclipse now. Java is a heavy weight language and without a good IDE you'll spend more time typing out boilerplate and fixing compiler errors than you will actually solving real problems. The flip side is that because Java is statically typed and highly structured, the tools can "understand" your code better than other languages and are therefore more powerful.
Defining a timeline for this one is tough, because it will depend a lot what specific problems you're trying to solve with Java. Getting to know your IDE is the one you'll have to do no matter what, and I'd expect you to be proficient after 2-4 weeks. After 3-4 months you'll probably know 90% of the techniques and tricks you'll actually use in this generation of the tool.
3. The Language
Knowing the basics of the Java language is definitely a prerequisite for the other two pieces, but if I had my choice between hiring someone who knew every line of the Java Language Spec by memory but was terrible at OO and still used notepad and javac vs. someone who was somewhat weak on advanced Java concepts, but could decompose problems well, and was proficient with a modern IDE, I'd take the second every time. Your knowledge of the nitty gritty details of the language will come as you try to solve new problems and are forced to push the boundaries of what the platform can do.
If you've got some programming experience, you should be able to learn enough of the syntax to be able to write a basic program within hours. It'll take you a couple weeks after that to learn the rest of the details and another month before all of that really becomes second nature and you can just write code without thinking about the syntax.
3a. The Libraries
I originally had this included as part of the language section, but it probably deserves it's own point. Learning about all the classes provided by the JDK is really important for becoming a proficient Java coder. You should strive to have a pretty complete knowledge of the entire java.lang and java.util packages (and to a lesser extent java.io.) In addition to that there are tons of open source libraries and frameworks available that have already solved a lot of the non-domain specific problems you'll face.
There's not really a timeline for this since you'll really just learn the classes as you need them. Just remember, if you're trying to solve a problem that applies to more than one domain there's probably an open source tool available to do it.