Are you new to programming? If so, my advice: Stay away from integrated development environments, especially at first. When you're more experienced you may want to start using them, but they totally distract you from the actual programming, initially. All you need is javac and your favorite text editor, mine being AquaMacs (an Aqua version of emacs). A lot of people like TextEdit and vi, as well, though vi has a bit of a learning curve =)
I've been a Java developer for close to 10 years. I taught a week long development course in the late 90's. Using nothing but a text editor and command line javac is very good advice for the beginner. Yes, it is tedious and much less productive than an IDE, but it forces you to deal with all aspects of Java. Do that a few months, then move into an IDE.
There are 4 choices of IDE. Do not use XCode unless your goal is to be a Mac Developer. Most jobs will want you to develop while using a PC.
Eclipse - Free. Main draw, has a plug in API and tons of available plug ins. (Much like Firefox) Drawback is that base Eclipse is barebones and you need many plugins to create a full featured IDE.
Netbeans - Free. Has some nice tools. Was way behind, but Sun is really improving the latest versions.
Oracle JDeveloper - Free. Good if you do much database centric code on Oracle.
IntelliJ IDEA - Corporate license $499. Personal license $249, educational license $99. Tons of refactoring support, intelligent code analysis and completion.
All 4 IDEs are built in Java and are cross platform.
Eclipse and IDEA lead the market by a wide margin. I find IDEA to be much better. Message boards have the two IDEs split close to 50/50 in terms of favorite. Companies prefer Eclipse often simply because it is free. Developer productivity tends to be better in IDEA.
Once you are ready for an IDE, also learn ANT for doing your compile and builds. All the IDE's support ANT. You just create an xml build file and ANT will compile, create jars/wars run unit tests, create javadoc, whatever you want. ANT is an open source tool from Apache.