The last year, i'm searching a descent Java IDE to code. I tried three so far, IntelliJ, eclipse and Netbeans, along with a few editors like vim and emacs.
The best programming experience i had it with IntelliJ, it has it all. Nice GUI, refactoring etc. But it has two main problems ... it needs much resources and it is commercial.
Eclipse was also fine, but there was something about it, that made me reject it. I think it was the overall concept, a large number of modules, programming languages etc.
I use Netbeans for now, and i think its a fine IDE. It has a lot of features but, need much improvement, especially the editor.
vi and emacs are fine editor, but are for general purpose only, you cant find all the integration you need in them. They have tons of plugins that are usually sloppy implemented, and cover a specific spectre of a programming language IDE.
Conclusions, netbeans for me. Its free, its pluggable its fast!