/*KASTEKANN
*Joonistada kvera sangaga kastekann. Hiirevajutuse peale kukub tilast vlja piisk.
*Lisaks eelmisele lendab piisk tilast vlja hooga, kukkudes vastavalt fsikaseadustele.
*Lisaks arvestatakse kasutaja mratud kiirusega puhuvat tuult.
*/

import java.awt.*;
import java.applet.*;
import java.applet.Applet;
import java.awt.event.*;

public class Kastekann extends Applet implements ActionListener{

	TextField tf=new TextField("0");
	Button nupp=new Button("Tilk");
	boolean tilk=false;
	double gravitatsioon=1.2;
	int tuul=0;

 public Kastekann(){
		//  NUPPUDE PANEEL
	 Button nupp2=new Button("Tuule kiirus: ");
	 nupp2.setEnabled(false);
	 Panel paneel=new Panel(new GridLayout(1,3));
	 paneel.add(nupp2);
	 paneel.add(tf);
	 paneel.add(nupp);
	 nupp.addActionListener(this);
	 add(paneel, BorderLayout.NORTH);
 }

 public void paint(Graphics g){ // TILK tuleb siia
		// Kastekann
	g.setColor(Color.green);
	g.fillOval(40,70,120,120);
	g.setColor(Color.white);
	g.fillOval(50,80,100,100);
	g.setColor(Color.green);
	g.fillRect(80,100,80,120);
	g.fillRect(160,120,100,20);
	g.fillRect(240,120,20,40);

	if(tilk){
		int x=245;
		gravitatsioon=1.2;
		for(double i=140;i<500;i=i+3+gravitatsioon){
			if(tuul!=0){
				if(i<150) x=245; // et lbi toru ei lendaks
				x=x+tuul;
			}
			g.setColor(Color.blue);
			g.fillOval(x,(int)i+10,10,10);
			g.setColor(Color.green);
			g.fillRect(240,120,20,40);
			try{Thread.sleep(50);}catch(Exception e){}
			g.setColor(Color.white);
			g.fillOval(x,(int)i+10,10,10);
			g.setColor(Color.green);
			g.fillRect(240,120,20,40);
			gravitatsioon=gravitatsioon+0.2;
		}}

 }

 public void actionPerformed(ActionEvent e){
		tuul=Integer.parseInt(tf.getText().trim());
		tilk=true;
		repaint();
 }

public static void main(String argumendid[]){
		Frame f=new Frame("Kastekann");
		f.setSize(400,500);
		f.setBackground(Color.white);
		f.add(new Kastekann());
		f.setVisible(true);

}
};