public voidactionPerformed(ActionEvent e){
Object source=e.getSource();if(source==timer){
Iterator it;nn
it=northCars.iterator();while(it.hasNext()){
Car car=(Car)it.next();if(car.y==700)it.remove();if(car.y==250){if(bLight==true)continue;///Stop//}else if(car.y==250){
if(MyMutex.center[0][0]==0)MyMutex.center[0][0]--;else continue;///Stop
}else if(car.y==340){
MyMutex.center[0][0]++;
}else if(car.y==300){if(MyMutex.center[1][0]==0)MyMutex.center[1][0]--;else continue;///Stop
}else if(car.y==390){
MyMutex.center[1][0]++;
}else if(car.y==350){if(MyMutex.center[2][0]==0)MyMutex.center[2][0]--;else continue;
}else if(car.y==440){
MyMutex.center[2][0]++;
}else if(car.y==400){if(MyMutex.center[3][0]==0)MyMutex.center[3][0]--;else continue;
}else if(car.y==490){
MyMutex.center[3][0]++;
}
car.y+=10;
}///ns
it=snorthCars.iterator();while(it.hasNext()){
Car car=(Car)it.next();if(car.y==700)it.remove();if(car.y==250){//if(bLight==true)continue;///Stop//}else if(car.y==250){
if(MyMutex.center[0][1]==0)MyMutex.center[0][1]--;else continue;///Stop
}else if(car.y==340){
MyMutex.center[0][1]++;
}else if(car.y==300){if(MyMutex.center[1][1]==0)MyMutex.center[1][1]--;else continue;///Stop
}else if(car.y==390){
MyMutex.center[1][1]++;
}else if(car.y==350){if(MyMutex.center[2][1]==0)MyMutex.center[2][1]--;else continue;
}else if(car.y==440){
MyMutex.center[2][1]++;
}else if(car.y==400){if(MyMutex.center[3][1]==0)MyMutex.center[3][1]--;else continue;
}else if(car.y==490){
MyMutex.center[3][1]++;
}
car.y+=10;
}/sn
it=southCars.iterator();while(it.hasNext()){
Car car=(Car)it.next();if(car.y==0)it.remove();if(car.y==450){if(bLight==true)continue;///Stop//}else if(car.y==450){
if(MyMutex.center[3][3]==0)MyMutex.center[3][3]--;else continue;///Stop
}else if(car.y==360){
MyMutex.center[3][3]++;
}else if(car.y==400){if(MyMutex.center[2][3]==0)MyMutex.center[2][3]--;else continue;///Stop
}else if(car.y==310){
MyMutex.center[2][3]++;
}else if(car.y==350){if(MyMutex.center[1][3]==0)MyMutex.center[1][3]--;else continue;
}else if(car.y==260){
MyMutex.center[1][3]++;
}else if(car.y==300){if(MyMutex.center[0][3]==0)MyMutex.center[0][3]--;else continue;
}else if(car.y==210){
MyMutex.center[0][3]++;
}
car.y-=10;
}ss
it=ssouthCars.iterator();while(it.hasNext()){
Car car=(Car)it.next();if(car.y==0)it.remove();if(car.y==450){//if(bLight==true)continue;///Stop//}else if(car.y==450){
if(MyMutex.center[3][2]==0)MyMutex.center[3][2]--;else continue;///Stop
}else if(car.y==360){
MyMutex.center[3][2]++;
}else if(car.y==400){if(MyMutex.center[2][2]==0)MyMutex.center[2][2]--;else continue;///Stop
}else if(car.y==310){
MyMutex.center[2][2]++;
}else if(car.y==350){if(MyMutex.center[1][2]==0)MyMutex.center[1][2]--;else continue;
}else if(car.y==260){
MyMutex.center[1][2]++;
}else if(car.y==300){if(MyMutex.center[0][2]==0)MyMutex.center[0][2]--;else continue;
}else if(car.y==210){
MyMutex.center[0][2]++;
}
car.y-=10;
}///ne
it=eastCars.iterator();while(it.hasNext()){
Car car=(Car)it.next();if(car.x==0)it.remove();if(car.x==450){if(bLight==false)continue;///Stop//}else if(car.x==450){
if(MyMutex.center[0][3]==0)MyMutex.center[0][3]--;else continue;///Stop
}else if(car.x==360){
MyMutex.center[0][3]++;
}else if(car.x==400){if(MyMutex.center[0][2]==0)MyMutex.center[0][2]--;else continue;///Stop
}else if(car.x==310){
MyMutex.center[0][2]++;
}else if(car.x==350){if(MyMutex.center[0][1]==0)MyMutex.center[0][1]--;else continue;
}else if(car.x==260){
MyMutex.center[0][1]++;
}else if(car.x==300){if(MyMutex.center[0][0]==0)MyMutex.center[0][0]--;else continue;
}else if(car.x==210){
MyMutex.center[0][0]++;
}
car.x-=10;
}//se
it=seastCars.iterator();while(it.hasNext()){
Car car=(Car)it.next();if(car.x==0)it.remove();if(car.x==450){//if(bLight==false)continue;///Stop//}else if(car.x==450){
if(MyMutex.center[1][3]==0)MyMutex.center[1][3]--;else continue;///Stop
}else if(car.x==360){
MyMutex.center[1][3]++;
}else if(car.x==400){if(MyMutex.center[1][2]==0)MyMutex.center[1][2]--;else continue;///Stop
}else if(car.x==310){
MyMutex.center[1][2]++;
}else if(car.x==350){if(MyMutex.center[1][1]==0)MyMutex.center[1][1]--;else continue;
}else if(car.x==260){
MyMutex.center[1][1]++;
}else if(car.x==300){if(MyMutex.center[1][0]==0)MyMutex.center[1][0]--;else continue;
}else if(car.x==210){
MyMutex.center[1][0]++;
}
car.x-=10;
}//nw
it=westCars.iterator();while(it.hasNext()){
Car car=(Car)it.next();if(car.x==700)it.remove();if(car.x==250){if(bLight==false)continue;///Stop//}else if(car.x==250){
if(MyMutex.center[3][0]==0)MyMutex.center[3][0]--;else continue;///Stop
}else if(car.x==340){
MyMutex.center[3][0]++;
}else if(car.x==300){if(MyMutex.center[3][1]==0)MyMutex.center[3][1]--;else continue;///Stop
}else if(car.x==390){
MyMutex.center[3][1]++;
}else if(car.x==350){if(MyMutex.center[3][2]==0)MyMutex.center[3][2]--;else continue;
}else if(car.x==440){
MyMutex.center[3][2]++;
}else if(car.x==400){if(MyMutex.center[3][3]==0)MyMutex.center[3][3]--;else continue;
}else if(car.x==490){
MyMutex.center[3][3]++;
}
car.x+=10;
}///sw
it=swestCars.iterator();while(it.hasNext()){
Car car=(Car)it.next();if(car.x==700)it.remove();if(car.x==250){//if(bLight==false)continue;///Stop//}else if(car.x==250){
if(MyMutex.center[2][0]==0)MyMutex.center[2][0]--;else continue;///Stop
}else if(car.x==340){
MyMutex.center[2][0]++;
}else if(car.x==300){if(MyMutex.center[2][1]==0)MyMutex.center[2][1]--;else continue;///Stop
}else if(car.x==390){
MyMutex.center[2][1]++;
}else if(car.x==350){if(MyMutex.center[2][2]==0)MyMutex.center[2][2]--;else continue;
}else if(car.x==440){
MyMutex.center[2][2]++;
}else if(car.x==400){if(MyMutex.center[2][3]==0)MyMutex.center[2][3]--;else continue;
}else if(car.x==490){
MyMutex.center[2][3]++;
}
car.x+=10;
}
adjust();
repaint();
}else if(source==timerLight){
bLight=!bLight;if(bLight)hint.setText("Now Right-Left Road is Accessible!");else hint.setText("Now Up-Down Road is Accessible!");
}else if(source==testTimer){//northCars.add(new Car(0,0,260,50));//snorthCars.add(new Car(0,1,310,50));//southCars.add(new Car(1,0,440,650));//ssouthCars.add(new Car(1,1,410,650));//eastCars.add(new Car(2,0,650,260));//seastCars.add(new Car(2,1,650,310));//westCars.add(new Car(3,0,50,440));//swestCars.add(new Car(3,1,50,410));
}else if(source==westn){
westCars.add(new Car(3,0,50,440));
}else if(source==wests){
swestCars.add(new Car(3,1,50,410));
}else if(source==eastn){
eastCars.add(new Car(2,0,650,260));
}else if(source==easts){
seastCars.add(new Car(2,1,650,310));
}else if(source==northn){
northCars.add(new Car(0,0,260,50));
}else if(source==norths){
snorthCars.add(new Car(0,1,310,50));
}else if(source==southn){
southCars.add(new Car(1,0,440,650));
}else if(source==souths){
ssouthCars.add(new Car(1,1,410,650));
}/Swtich Table For Source Handling
}