資源簡介
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選中點就可以輸出坐標到文件
評論
共有 條評論