Hi here is an idea how to do a NURB Spline with JGeom
private NurbsCurve nc;
// Create a Curve by defining some control points in space
CurveCreator cc = new CurveCreator(3);
cc.addControlPoint(new Point3f(0,0,0));
cc.addControlPoint(new Point3f(1,2,0));
cc.addControlPoint(new Point3f(2,0,0));
cc.addControlPoint(new Point3f(3,3,0));
nc = cc.getActual();
In order to draw your curve you need to extract some discrete information that you can use. Most of the time it will be points in space, same concept applies for NURBS surfaces you just have to be much smarter about selecting points on the surface. In this case we will go along the curve function (NURBS is parametrized from 0 to 1 so if you do a point on curve with 0.5 it will give you a point in space that cuts the curve in half (length wise).
for(float i = 0f; i < 1; i = i + lineQuality)
{
Point3f currPt = nc.pointOnCurve(i);
}
If you put these points into array and then if you connect them with straight lines you will end up with an approximation of the curve (NURBS in this case) if you do a more detailed curve sampling you will end up with smoother representation.
Now if you want to do your own implementation of curves of any sort you can find a lot of information on the following site: http://www.realtimerendering.com/ under curves and surfaces section there is a bunch of links to different concepts, there must be some coding examples in there.
Hope that this helps a bit