Hola, mirá BlueJ para aprender, basado en la POO, representa el código en notacion UML, y podes crear objetos sin necesidad de ejecutar ningun programa.
http://www.bluej.org/download/download.html
Luego tenes un IDE orientado a java, basado en plugins, basta colocar el plugin en la carpeta Plugins, y listo, al reiniciar tenes la utilidad incorporada
http://eclipse.org/downloads/
Hay plugins para otros lenguajes como C++, php, etc.
La parte de refactoring no me convence demasiado, aunque en general es un interesante gestor de proyectos java.
Tb está Netbeans, pero lo estoy probando recien
www.netbeans.org
La diferencia entre los 2 ultimos es en qué basan su infraestructura gráfica, uno en swt, y el otro en swing
saludos