In order to address many of the very issues you describe, we've developed DrJava, an open-source (GPL'd) Java IDE at Rice University. DrJava has an integrated read-eval-print-loop, allowing students to instantly call methods, evaluate expressions, and otherwise interact with their code without having to write a single main method or println. You can download it at:
You'll find that the philosophy behind DrJava is very different from other intro tools, such as BlueJ. DrJava is heavily influenced by extreme programming: we try to keep students focused on the code, and the tests over the code, instead of on UML. In addition to the read-eval-print loop, DrJava includes seamless integration of JUnit, as well as a JPDA-based debugger.
BTW, DrJava is itself a great example of an extreme programming project. Approximately one-third of the DrJava code base consists of unit tests. For this reason, we also use the code as the basis for our upper-level software engineering course. This gives students the opportunity to work on a real body of XP software, and it helps us to further extend the available functionality. Since the code is open-source, the same thing could be done at other universities, and extensions could even be submitted for inclusion in future releases. Check it out; we think you'll like it!