Det jeg sagde før passer ikke den bounding box Java giver er med control punktet.
Så her er en anden ide, brug subdivide til at dele kurven i 2 dele ende punktet af den første del må være et punkt på kurven.
Graphics2D g2D;
g2D = (Graphics2D) g;
g2D.setColor (Color.cyan);
QuadCurve2D kurve= new QuadCurve2D.Double ();
kurve.setCurve (50,50,100,100,50,150);
QuadCurve2D d1=new QuadCurve2D.Double ();
QuadCurve2D d2=new QuadCurve2D.Double ();
kurve.subdivide(d1,d2);
g2D.fillOval((int)d1.getX2()-5,(int)d1.getY2()-5,10,10);
g2D.setColor (Color.black);
g2D.draw (kurve);