import java.applet.Applet; import java.awt.*; public class SpiroTest extends Applet { Scrollbar bar1, bar2; NewCanvas can; Panel pan, lpan, bar1pan, bar2pan; TextField text1, text2; Button drawit; public void init(){ drawit = new Button("Draw the graph"); bar1 = new Scrollbar(Scrollbar.HORIZONTAL,1,0,1,20); bar2 = new Scrollbar(Scrollbar.HORIZONTAL,3,0,-20,20); text1 = new TextField("inner 1"); text2 = new TextField("outer 3"); text1.setEditable(false); text2.setEditable(false); can = new NewCanvas(); can.resize(300,300); can.setBackground(Color.yellow); pan = new Panel(); setLayout(new BorderLayout()); bar1pan = new Panel(); bar1pan.resize(300,40); bar1pan.setLayout(new BorderLayout()); bar1pan.add("North",bar1); bar1pan.add("South",text1); bar2pan = new Panel(); bar2pan.resize(300,40); bar2pan.setLayout(new BorderLayout()); bar2pan.add("North",bar2); bar2pan.add("South",text2); lpan = new Panel(); lpan.setLayout(new BorderLayout()); lpan.add("North",bar1pan); lpan.add("South",bar2pan); pan.setLayout(new BorderLayout()); pan.add("South",lpan); pan.add("North",drawit); pan.add("Center",can); add("Center",pan); } public boolean handleEvent( Event e){ if(e.target instanceof Scrollbar){ int value = ((Scrollbar)e.target).getValue(); if( e.target == bar1){ text1.setText("inner " + Integer.toString(value)); } else if( e.target == bar2){ text2.setText("outer " + Integer.toString(value)); } } if( e.target == drawit){ can.setvalue1(bar1.getValue()); can.setvalue2(bar2.getValue()); can.repaint(); } return true; } } class NewCanvas extends Canvas{ int value1, value2; public void setvalue1(int val){ value1 = val; } public void setvalue2(int val){ value2 = val; } public void paint(Graphics g){ double theta, x, y, oldx, oldy; oldx = 270.0; oldy = 150.0; g.setColor(Color.blue); for(theta = 0.0; theta < 40.0*Math.PI; theta += 2.0*Math.PI/360.0){ x = 150.0+80.0*Math.cos(value1*theta)+40.0*Math.cos(value2*theta); y = 150.0+80.0*Math.sin(value1*theta)+40.0*Math.sin(value2*theta); g.drawLine((int)oldx,(int)oldy,(int)x,(int)y); oldx = x; oldy = y; } } }