⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 singlelanebridge.java

📁 演示win32的socket 通讯 八皇后的改进算法 并发Concurrency的JAVA实现 applet演示鼠标的点击时间和显示图象 手机J2ME的多线程演示
💻 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 + -