//******************************************************************************
// SinusApplet.java:	Applet
//
//******************************************************************************
import java.applet.*;
import java.awt.*;

public class SinusApplet extends Applet
{
	// Feld um den Winkel einzugeben
	TextField tfWinkel = new TextField("0.0",10);
	
    // Sinus des Winkels
	TextField tfSinus = new TextField("0.0",10);

	//Einheit
	Checkbox cbGrad;

	public String getAppletInfo()
	{
		return "Name: SinusApplet\r\n" +
		       "Author: sdteffen\r\n" +
		       "Created with Microsoft Visual J++ Version 1.0";
	}

	public void init()
	{
        resize(120, 100);
		
		setLayout(new FlowLayout(FlowLayout.LEFT,10,10));
		
		// Eingabe
		//Beschriftung
		add(new Label("Winkel: ", Label.LEFT));
		//Feld
		add(tfWinkel);
	    tfWinkel.requestFocus();
		// Einheiten
		CheckboxGroup cbgEinheit = new CheckboxGroup();
		add(cbGrad = new Checkbox("Grad", cbgEinheit, true));
		add(new Checkbox("Bogenmass", cbgEinheit, false));  
		//Ausgabe
		add(new Label(" Sinus: ",Label.LEFT));
		add(tfSinus);
		tfSinus.setEditable(false);		
	}
	
	// Neuer Winkel eingestellt
	public boolean action(Event event, Object obj) 
   	{
       tfWinkel.requestFocus();
	     
	   // return gedrueckt?
	   if (event.id == Event.ACTION_EVENT)
	   { 
           double winkel;
		   // Text -> Zahl
		   try
		   {
		       winkel=new Double(tfWinkel.getText()).doubleValue();
		   }
		   catch(NumberFormatException e)
		   {
			 //Keine Zahl, Fehlermeldung
			   tfSinus.setText("???");
			   return true;
		   }
		   // Einheit?
		   if(cbGrad.getState())
		   {
			   //Grad
			   winkel = 2*Math.PI*winkel/360;
		   }
		   // Sinus berechnen
		   tfSinus.setText(new Double(Math.sin(winkel)).toString());
		   return true;
       } 
	   else 
	   	 return false;
    } 
	
}
