Depending on how comfortable you are with Java and whether you want to do the physics calculations yourself, you could use JBox2D to make a nice billiard ball simulation. I've been using it recently and have found it works very well. The documentation is somewhat poor though. Your main resources would be:
The Box2D manual for C++ - first port of call for all functions and usage scenarios.
The JBox2D library download - look inside the src folder for the testbed code, this will be your reference for pretty much everything.
The JBox2D testbed running online as a Java applet - fun to play with
