资源简介
ex02.rar

代码片段和文件信息
package xzt.newpark;
import java.awt.Component;
import java.awt.Container;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.io.objectInputStream;
import java.io.objectOutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.Iterator;
import javax.swing.JButton;
import javax.swing.Jframe;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
public class Entrance extends Jframe implements PortI Runnable {
/**
*
*/
private static final long serialVersionUID = 290382490375072605L;
private ArrayList remotePortInfs;// 该列表保存所有的Port对象(包括出口和入口)的信息
// 其中的元素是PortInfBean对象
private ArrayList applicationStack;// 保存所有待进入临界区的Message
private ArrayList entranceJoinReplyStack;// 保存所有端口发送的包含了自己状态的消息
private ServerSocket serverSocket;// socket对象 负责发送和接受消息
private PortInfBean localPortInf;// 代表自己这个节点的信息
private int unoccupiedNum;// 当前空闲车位数
@SuppressWarnings(“unused“)
private int totalParkingNum;// 总车位数
private int replyNum;// 收到的回复数
private JLabel nameLabel unoccupiedNumLabel;
private JButton carInButton;
private ActionListener listener = new MyBtnListener();
private int waitingCarNum;
// 入口状态,有RELEASED、WANTED、HELD三种状态
private STATE state;
enum STATE {
RELEASEDWANTEDHELD;
}
// 是否系统正在加入端口,如果是,则需要等到端口加入后占有临界区的入口才能释放临界区
private boolean updating;
private class MyBtnListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
object o = e.getSource();
if (o instanceof JButton) {
JButton btn = (JButton) o;
if (btn.getText().equals(“Car Enter“)) {
new Thread() {
public void run() {
if (state == STATE.RELEASED) {
state = STATE.WANTED;
apply();
} else {
waitingCarNum++;
}
showUnoccupiedNum();
}
}.start();
}
}
}
}
public Entrance(String address int port int totalParkingNum) {
super(String.valueOf(“ENTRANCE:“ + port));
try {
localPortInf = new PortInfBean(address port “entrance“);
serverSocket = new ServerSocket(port);
remotePortInfs = new ArrayList();
applicationStack = new ArrayList();
entranceJoinReplyStack = new ArrayList();
replyNum = 0;
unoccupiedNum = totalParkingNum;
this.totalParkingNum = totalParkingNum;
state = STATE.RELEASED;
waitingCarNum = 0;
updating = false;
nameLabel = new JLabel(“Unoccupied Num:“);
unoccupiedNumLabel = new JLabel(Integer
.toOctalString(this.unoccupiedNum));
carInButton = new JButton(“Car Enter“);
Container contentPane = this.getContentPane();
GridBagConstraints gbc = new GridBagConstraints();
contentPane.setLayout
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 19607 2013-12-31 16:21 newpark\Entrance.java
文件 11063 2013-12-31 16:20 newpark\Exit.java
文件 5424 2013-12-31 16:22 newpark\Initfr
文件 2137 2013-12-31 16:20 newpark\Message.java
文件 4131 2013-12-31 17:11 newpark\ParkManager.java
文件 694 2013-12-31 16:20 newpark\PortI.java
文件 1356 2013-12-31 16:20 newpark\PortInfBean.java
目录 0 2013-12-31 17:35 newpark
----------- --------- ---------- ----- ----
44412 8
- 上一篇:2.16.2_0.crx
- 下一篇:cad选中点就可以输出坐标到文件
相关资源
- PID_AutoTune_v0.rar
- vspd7.2.308.zip
- 价值2k的H漫画小说系统
- Pythonamp;课堂amp;笔记(高淇amp;400;集第
- ddos压力测试工具99657
- UML建模大全
- 开源1A锂电池充电板TP4056原理图+PCB
- m1卡 ic卡可选择扇区初始化加密软件
- TSCC.exe
- FTP课程设计(服务端+客户端)
- 计算机图形学 边填充算法实现代码
- 电力系统潮流计算程序集合
- oracle数据迁移项目实施方案
- Web Api 通过文件流 文件到本地
- Visio图标-最新最全的网络通信图标库
- Spire API文档
- OpenGL参考手册
- Python中Numpy库最新教程
- SPD博士V5.3.exe
- 直流无刷电机方波驱动 stm32 例程代码
- layui后台管理模板
- 仿知乎界面小程序源代码
- 云平台-阿里云详细介绍
- photoshop经典1000例
- scratch垃圾分类源码(最终版本).sb
- IAR ARM 7.8破解
- TI CCS V5.4 安装步骤及破解文件
- 松下plc FP-XH的驱动
- 局域网硬件信息收集工具
- 加快Windows XP操作系统开机速度
评论
共有 条评论