import java.util.*; import java.applet.Applet; import java.io.*; import java.awt.*; import java.awt.event.*; public class anim extends Applet implements ActionListener, Runnable{ TextField tf1=new TextField("10"); double samm=0.01; double nurk=40; double raadius=20; public anim(){ add(tf1); tf1.addActionListener(this); new Thread(this).start(); //luuakse lõim } public void paint(Graphics g){ paint(); } public void paint(){ Graphics g=this.getGraphics(); int nr=Integer.parseInt(tf1.getText()); g.setColor(Color.white); g.fillRect(0, 0, getSize().width, getSize().height); //ala kaetakse valge värviga, et tekiks visuaalne liikumine if((nr<1)|(nr>100)){ tf1.setText("10"); g.setColor(Color.black); } samm=nr*0.01; g.setColor(Color.black); g.drawString("Kiirus (1-100)", 100, 50); g.drawOval(180, 80, 20, 30); //pea g.drawLine(190, 170, 190, 110); //keha (alapunktid, ylapunktid) g.drawLine(190, 170, 180, 215); // vasak jalg (alumine, ülemine) g.drawLine(190, 170, 200, 225); //parem jalg (alumine, ülemine) g.setColor(Color.blue); g.fillOval(172, 215, 10, 5); //vasak jalalaba g.fillOval(194, 225, 10, 5); //parem jalalaba g.setColor(Color.black); g.drawLine(190, 115, 200+(int)(raadius*Math.cos(nurk))-20, 150+(int)(raadius*Math.cos(nurk))-20); //parem käsivars (ylemine, alumine) g.drawLine(200+(int)(raadius*Math.cos(nurk))-20, 150+(int)(raadius*Math.cos(nurk))-20, 180+(int)(raadius*Math.cos(nurk))-30, 160+(int)(raadius*Math.cos(nurk))-30); // parem kyynarvars g.setColor(Color.red); g.fillOval(175+(int)(raadius*Math.cos(nurk))-30, 155+(int)(raadius*Math.cos(nurk))-30, 5, 10); //poksikinnas g.setColor(Color.black); g.drawLine(190, 115, 170+(int)(raadius*Math.sin(nurk))-10, 120+(int)(raadius*Math.sin(nurk)) -10); //vasak käsivars g.drawLine(170+(int)(raadius*Math.sin(nurk))-10, 120+(int)(raadius*Math.sin(nurk))-10, 170+(int)(raadius*Math.sin(nurk))-30, 130+(int)(raadius*Math.sin(nurk))-30); //vasak kyynarvars g.setColor(Color.red); g.fillOval(167+(int)(raadius*Math.sin(nurk))-30, 125+(int)(raadius*Math.sin(nurk))-30, 5, 10); //teine kinnas nurk=nurk+samm; } public void run(){ //(kontrollib pidevalt kas ja mida on tekstiväljale sisestatud ja joonistab pilti üle) while(true){ try{ paint(); Thread.sleep(10); //hoidumaks liigsest võbelusest pideva ülejoonistamise puhul, sest nii suurt sagedust pole lihtsalt vaja } catch(Exception e){} } } public void actionPerformed(ActionEvent e){ if(e.getSource()==tf1)paint(); } public static void main(String argumendid[]){ Frame raam=new Frame("Poksija"); raam.add(new anim()); raam.setSize(300, 300); raam.setResizable(false); raam.setLocation(150,200); raam.setVisible(true); raam.addWindowListener(new Raamikuular()); } } class Raamikuular extends WindowAdapter{ public void windowClosing(WindowEvent e){ System.exit(0); } }