I've been looking around for a Java implementation of the force-directed graph layout algorithm but got no fruits so far. Any help will be appreciated :)
Jung:
http://jung.sourceforge.net/index.html
.. has been around for a while, and has many layout algorithms.
You might also check out Gephi at http://gephi.org/ - it's an application, not a lib, but it's open source Java.
There's also Processing (a Java superlanguage) and the physics lib here: http://www.cs.princeton.edu/~traer/physics/random_arboretum/index.html (click in the box a bunch of times to create the graph).