import java.applet.Applet; import java.awt.*; import java.awt.Graphics; import java.awt.event.*; public class siinus extends Applet implements Runnable, ActionListener{ TextField pikkus=new TextField("2"); TextField pikkus1=new TextField("50"); TextField pikkus2=new TextField("70"); Label l1=new Label("Sisesta Kiirus, laius, sagedus ja vajuta Enterit"); int nr=100 ;int nr1=50;int nr2=90; private int algusnurk; private Image malupilt = null; private Graphics malugraaf = null; private Thread siinus = null; public void init() { setLayout(new GridLayout(20, 1)); algusnurk = 0; start(); setBackground(Color.blue); add(pikkus); setBackground(Color.yellow); add(pikkus1); add(pikkus2); add(l1); pikkus.addActionListener(this); pikkus1.addActionListener(this); pikkus2.addActionListener(this); } public void update(Graphics g) { paint(g); } public void paint(Graphics g) { int vanax; int vanay; int uusx; int uusy; if (malupilt == null) // sattudes esimest korda { malupilt = createImage(getSize().width, getSize().height); malugraaf = malupilt.getGraphics(); } uusx = 0; vanax = 0; vanay = (int)(nr1 * Math.sin((double)(uusx+algusnurk)*Math.PI/nr2) + getSize().height / 2); malugraaf.setColor(Color.yellow); malugraaf.fillRect(0,0,getSize().width, getSize().height); malugraaf.setColor(Color.black); while(uusx < getSize().width) { uusy = (int)(nr1 * Math.sin((double)(uusx+algusnurk)*Math.PI/nr2) + getSize().height / 2); malugraaf.drawLine(vanax, vanay, uusx, uusy); vanay=uusy; vanax=uusx; uusx++; } g.drawImage(malupilt, 0,0,this); } public void run() { while (Thread.currentThread() == siinus) { algusnurk = algusnurk + nr ; if (algusnurk >= 360) algusnurk = 0; repaint(); try { Thread.sleep(20); } catch (InterruptedException e) {} } } public void actionPerformed(ActionEvent e){ nr=Integer.parseInt(pikkus.getText().trim()); nr1=Integer.parseInt(pikkus1.getText().trim()); nr2=Integer.parseInt(pikkus2.getText().trim()); start(); siinus = new Thread(this); siinus.start(); } public void stop() { siinus = null; } }