
import java.awt.*;
import java.applet.*;

public class CurveDemo
  extends Applet
{
  private Panel ctlPan;
    private Panel cmdPan;
      private Label lbPoints;
      private Choice chPoints;
  private CurvePanel curvePan;

  private int nPts = 5;

  public CurveDemo()
  {
    setLayout( new BorderLayout() );
    ctlPan = new Panel();
    ctlPan.setLayout( new BorderLayout() );
    cmdPan = new Panel();
    lbPoints = new Label( "Number of points" );
    chPoints = new Choice();
    int i;
    for( i = 3; i < 8; i++ )
      chPoints.addItem( "" + i );
    chPoints.select( "" + nPts );
    cmdPan.add( lbPoints );
    cmdPan.add( chPoints );
    ctlPan.add( "Center", cmdPan );
    curvePan = new CurvePanel( 500, 500 );
    curvePan.init( nPts );
    add( "North", ctlPan );
    add( "Center", curvePan );
  }

  public boolean handleEvent( Event evt )
  {
    if( evt.id == Event.ACTION_EVENT ) {
      if( evt.target == chPoints ) {
        int n = Integer.parseInt( chPoints.getSelectedItem() );
        if( nPts != n ) {
          nPts = n;
          curvePan.init( nPts );
        }
      }
    }
    return super.handleEvent( evt );
  }

  public static void main( String[] args )
  {
    CurveDemo p = new CurveDemo();
    KFrame fr = new KFrame( "Curve Fitting using Bezier Splines" );
    fr.add( "Center", p );
    fr.pack();
    fr.show();
  }
}
