/*KASTEKANN *Joonistada kõvera sangaga kastekann. Hiirevajutuse peale kukub tilast välja piisk. *Lisaks eelmisele lendab piisk tilast välja hooga, kukkudes vastavalt füüsikaseadustele. *Lisaks arvestatakse kasutaja määratud 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 läbi 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); } };