いろふさんクラスが動いてくれない
いろふさんクラスが動いてくれない
import java.applet.*;import java.awt.*;import java.awt.event.*;public class Animation5 extends Applet{MyThread thread[]={null,null,null,null,null,null,null};int length=thread.length;int width,height;int move=10;Circle circle;Square square;Triangle triangle;makeIrof irof;Button resumeButton,suspendButton;boolean threadSuspended=false;public void init(){width=getSize().width;height=getSize().height;int radius=25;circle=new Circle(radius);circle.setXY(radius,50+radius);circle.setSpeed(move);circle.setColor(Color.red);circle.setMovingWidth(width);square=new Square(50);square.setXY(0,110);square.setSpeed(move);square.setColor(Color.blue);square.setMovingWidth(width);triangle=new Triangle(25,50);triangle.setXY(25,170);triangle.setSpeed(move);triangle.setColor(Color.green);triangle.setMovingWidth(width);irof=new makeIrof(50);irof.setXY(50,50);irof.setSpeed(move);irof.setColor(Color.lightGray);irof.setMovingWidth(width);irof.setMovingHeight(height);resumeButton=new Button("Resume");suspendButton=new Button("Suspend");add(resumeButton);add(suspendButton);resumeButton.addActionListener(new ActionAdp());suspendButton.addActionListener(new ActionAdp());}public void start(){for(int i=0;i<length;i++){if(thread[i]==null){thread[i]=new MyThread(i,400-100*(i-3));thread[i].start();}}}public void stop(){for(int i=0;i<length;i++){if(thread[i]!=null){thread[i]=null;}}}public void paint(Graphics g){circle.paint(g);square.paint(g);triangle.paint(g);}class ActionAdp implements ActionListener{public void actionPerformed(ActionEvent e){if(e.getSource()==resumeButton){threadSuspended=false;myResume();}else if(e.getSource()==suspendButton){threadSuspended=true;}}}void myResume(){for(int i=0;i<length;i++){thread[i].myResume();}}class MyThread extends Thread{int index,stime;MyThread(int index,int stime){this.index=index;this.stime=stime;}public void run(){Thread thisThread=Thread.currentThread();while(thread[index]==thisThread){while(threadSuspended){synchronized(this){try{wait();}catch(InterruptedException e){}}}repaint();try{this.sleep(stime);if(index==0){circle.nextPlace();}else if(index==1){square.nextPlace();}else if(index==2){triangle.nextPlace();}}catch(InterruptedException e){}}}public synchronized void myResume(){notify();}}class Square{int x=0;int y=0;int length=0;int move=0;int width=0;int height=0;Color color=Color.black;Square(int length){this.length=length;}public void setXY(int x,int y){this.x=x;this.y=y;}public void setSpeed(int move){this.move=move;}public void setColor(Color color){this.color=color;}public void setMovingWidth(int width){this.width=width;}public void setMovingHeight(int height){this.height=height;}public void paint(Graphics g){g.setColor(color);g.fillRect(x,y,length,length);}public void nextPlace(){setXY((int)(x+3*move*(Math.random()-0.3)),(int)(y+3*move*(Math.random()-0.4)));if(x>=width){setXY(x-width,y);}else if(x<0){setXY(x+width,y);}if(y<0){setXY(x,y+height);}else if(y>=height){setXY(x,y-height);}}}class Triangle{int x[];int y[];int xShift=0;int yShift=0;int move=0;int width=0;int height=0;Color color=Color.black;Triangle(int xShift,int yShift){this.xShift=xShift;this.yShift=yShift;x=new int[3];x[0]=0;x[1]=-xShift;x[2]=xShift;y=new int[3];y[0]=0;y[1]=yShift;y[2]=yShift;}public void setXY(int x,int y){this.x[0]=x;this.x[1]=x-xShift;this.x[2]=x+xShift;this.y[0]=y;this.y[1]=y+yShift;this.y[2]=y+yShift;}public void setSpeed(int move){this.move=move;}public void setColor(Color color){this.color=color;}public void setMovingWidth(int width){this.width=width;}public void setMovingHeight(int height){this.height=height;}public void paint(Graphics g){g.setColor(color);g.fillPolygon(x,y,3);}public void nextPlace(){setXY((int)(x[0]+3*move*(Math.random()-0.3)),(int)(y[0]+3*move*(Math.random()-0.4)));if(x[0]>=width){setXY(x[0]-width,y[0]);}else if(x[0]<0){setXY(x[0]+width,y[0]);}if(y[0]<0){setXY(x[0],y[0]+height);}else if(y[0]>=height){setXY(x[0],y[0]-height);}}}class Circle{int radius=0;int x=0;int y=0;int move=0;int width=0;int height=0;Color color=Color.black;Circle(int radius){this.radius=radius;}public void setXY(int x,int y){this.x=x;this.y=y;}public void setSpeed(int move){this.move=move;}public void setColor(Color color){this.color=color;}public void setMovingWidth(int width){this.width=width;}public void setMovingHeight(int height){this.height=height;}public void paint(Graphics g){g.setColor(color);g.fillOval(x-radius,y-radius,2*radius,2*radius);}public void nextPlace(){setXY((int)(x+3*move*(Math.random()-0.3)),(int)(y+3*move*(Math.random()-0.4)));if(x>=width){setXY(x-width,y);}else if(x<0){setXY(x+width,y);}if(y<0){setXY(x,y+height);}else if(y>=height){setXY(x,y-height);}}}class makeIrof{int radius=0;int x=0;int y=0;int move=0;int width=0;int height=0;Color color=Color.black;makeIrof(int radius){this.radius=radius;}public void setXY(int x,int y){this.x=x;this.y=y;}public void setSpeed(int move){this.move=move;}public void setColor(Color color){this.color=color;}public void setMovingWidth(int width){this.width=width;}public void setMovingHeight(int height){this.height=height;}public void paint(Graphics g){g.setColor(color);g.fillArc(x-radius,y-radius,2*radius,2*radius,10,300);}public void nextPlace(){setXY((int)(x+3*move*(Math.random()-0.3)),(int)(y+3*move*(Math.random()-0.4)));if(x>=width){setXY(x-width,y);}else if(x<0){setXY(x+width,y);}if(y<0){setXY(x,y+height);}else if(y>=height){setXY(x,y-height);}}}}