for beginners I would recommend Dr Java... it's pretty good and most beginning programming classes that teach Java use that one. Afterwards I would recommend Eclipse or NetBeans... both are really good.
I like Visual Cafe also... dunno if anyone else shares my opinion