?? singlelanebridge.java
字號:
package concurrency.bridge;
import java.awt.*;
import java.applet.*;
public class SingleLaneBridge extends Applet {
BridgeCanvas display;
Button restart;
Button freeze;
Button onecar;
Button twocar;
Button threecar;
Checkbox fair;
Checkbox safe;
boolean fixed = false;
int maxCar = 1;
Thread red[];
Thread blue[];
public void init() {
setLayout(new BorderLayout());
display = new BridgeCanvas(this);
add("Center",display);
restart = new Button("Restart");
freeze = new Button("Freeze");
onecar = new Button("One Car");
twocar = new Button("Two Cars");
threecar = new Button("Three Cars");
safe = new Checkbox("Safe",null,true);
fair = new Checkbox("Fair",null,false);
Panel p1 = new Panel();
p1.setLayout(new FlowLayout());
p1.add(freeze);
p1.add(restart);
p1.add(onecar);
p1.add(twocar);
p1.add(threecar);
p1.add(safe);
p1.add(fair);
add("South",p1);
}
public void start() {
red = new Thread[maxCar];
blue = new Thread[maxCar];
display.init(maxCar);
Bridge b;
if (fair.getState() && safe.getState())
b = new FairBridge();
else if ( safe.getState())
b = new SafeBridge();
else
b = new Bridge();
for (int i = 0; i<maxCar; i++) {
red[i] = new Thread(new RedCar(b,display,i));
blue[i] = new Thread(new BlueCar(b,display,i));
}
for (int i = 0; i<maxCar; i++) {
red[i].start();
blue[i].start();
}
}
public void stop() {
for (int i = 0; i<maxCar; i++) {
red[i].stop();
blue[i].stop();
}
}
public boolean handleEvent(Event event) {
if (event.id != event.ACTION_EVENT) {
return super.handleEvent(event);
} else if(event.target==restart) {
display.thaw();
return true;
} else if (event.target == freeze) {
display.freeze();
return true;
} else if (event.target == onecar) {
stop();
maxCar = 1;
start();
return true;
} else if (event.target == twocar) {
stop();
maxCar = 2;
start();
return true;
} else if (event.target == threecar) {
stop();
maxCar = 3;
start();
return true;
} else if (event.target == fair || event.target == safe) {
stop();
start();
return true;
} else
return super.handleEvent(event);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -