You should check out Robot OS at www.ros.org. ROS is basically an OS (a term I am using loosely in this context) that comes with different libraries that give you the capability to build a robot. There is a a publish/subscribe feature that lets you asynchronously capture data from nodes (sensors) so you can create a robot that can graph nodes that can communicate with one another using what ROS terms as topics. A node can also be a graphical view of the entire system you want to build.
ROS also includes a robot geometry library that keeps track of where different parts of the robot are with respect to each other. Ultimately, the Geometry library gives you the ability to visualize the state of the system being developed.
Unfortunately it is in C++, although I believe you can use Python also, and I do not think it will provide functionality in Java.
What I know is that every serious Robotics project I have seen uses ROS.