java五子棋源代码Word文件下载.docx
《java五子棋源代码Word文件下载.docx》由会员分享,可在线阅读,更多相关《java五子棋源代码Word文件下载.docx(19页珍藏版)》请在冰豆网上搜索。
importjava.awt.*;
importjava.awt.event.*;
importjava.io.*;
import.*;
importjava.util.*;
classclientThreadextendsThread
{
chessClientchessclient;
clientThread(chessClientchessclient)
this.chessclient=chessclient;
}
publicvoidacceptMessage(StringrecMessage)
if(recMessage.startsWith("
/userlist"
))
StringTokenizeruserToken=newStringTokenizer(recMessage,"
"
);
intuserNumber=0;
chessclient.userpad.userList.removeAll();
chessclient.inputpad.userChoice.removeAll();
chessclient.inputpad.userChoice.addItem("
所有人"
while(userToken.hasMoreTokens())
Stringuser=(String)userToken.nextToken("
if(userNumber>
0&
&
!
user.startsWith("
[inchess]"
chessclient.userpad.userList.add(user);
chessclient.inputpad.userChoice.addItem(user);
userNumber++;
chessclient.inputpad.userChoice.select("
elseif(recMessage.startsWith("
/yourname"
chessclient.chessClientName=recMessage.substring(10);
chessclient.setTitle("
Java五子棋客户端"
+"
用户名:
"
+chessclient.chessClientName);
elseif(recMessage.equals("
/reject"
try
chessclient.chesspad.statusText.setText("
不能加入游戏"
chessclient.controlpad.cancelGameButton.setEnabled(false);
chessclient.controlpad.joinGameButton.setEnabled(true);
chessclient.controlpad.creatGameButton.setEnabled(true);
catch(Exceptionef)
chessclient.chatpad.chatLineArea.setText("
chessclient.chesspad.chessSocket.close无法关闭"
/peer"
chessclient.chesspad.chessPeerName=recMessage.substring(6);
if(chessclient.isServer)
chessclient.chesspad.chessColor=1;
chessclient.chesspad.isMouseEnabled=true;
请黑棋下子"
elseif(chessclient.isClient)
chessclient.chesspad.chessColor=-1;
已加入游戏,等待对方下子..."
/youwin"
chessclient.isOnChess=false;
chessclient.chesspad.chessVictory(chessclient.chesspad.chessColor);
对方退出,请点放弃游戏退出连接"
chessclient.chesspad.isMouseEnabled=false;
/OK"
创建游戏成功,等待别人加入..."
/error"
chessclient.chatpad.chatLineArea.append("
传输错误:
请退出程序,重新加入\n"
else
chessclient.chatpad.chatLineArea.append(recMessage+"
\n"
chessclient.chatpad.chatLineArea.setCaretPosition(
chessclient.chatpad.chatLineArea.getText().length());
publicvoidrun()
Stringmessage="
;
while(true)
message=chessclient.in.readUTF();
acceptMessage(message);
catch(IOExceptiones)
publicclasschessClientextendsFrameimplementsActionListener,KeyListener
userPaduserpad=newuserPad();
chatPadchatpad=newchatPad();
controlPadcontrolpad=newcontrolPad();
chessPadchesspad=newchessPad();
inputPadinputpad=newinputPad();
SocketchatSocket;
DataInputStreamin;
DataOutputStreamout;
StringchessClientName=null;
Stringhost=null;
intport=4331;
booleanisOnChat=false;
//在聊天?
booleanisOnChess=false;
//在下棋?
booleanisGameConnected=false;
//下棋的客户端连接?
booleanisServer=false;
//如果是下棋的主机
booleanisClient=false;
//如果是下棋的客户端
PanelsouthPanel=newPanel();
PanelnorthPanel=newPanel();
PanelcenterPanel=newPanel();
PanelwestPanel=newPanel();
PaneleastPanel=newPanel();
chessClient()
super("
Java五子棋客户端"
setLayout(newBorderLayout());
host=controlpad.inputIP.getText();
westPanel.setLayout(newBorderLayout());
westPanel.add(userpad,BorderLayout.NORTH);
westPanel.add(chatpad,BorderLayout.CENTER);
westPanel.setBackground(Color.pink);
inputpad.inputWords.addKeyListener(this);
chesspad.host=controlpad.inputIP.getText();
centerPanel.add(chesspad,BorderLayout.CENTER);
centerPanel.add(inputpad,BorderLayout.SOUTH);
centerPanel.setBackground(Color.pink);
controlpad.connectButton.addActionListener(this);
controlpad.creatGameButton.addActionListener(this);
controlpad.joinGameButton.addActionListener(this);
controlpad.cancelGameButton.addActionListener(this);
controlpad.exitGameButton.addActionListener(this);
controlpad.creatGameButton.setEnabled(false);
controlpad.joinGameButton.setEnabled(false);
controlpad.cancelGameButton.setEnabled(false);
southPanel.add(controlpad,BorderLayout.CENTER);
southPanel.setBackground(Color.pink);
addWindowListener(newWindowAdapter()
publicvoidwindowClosing(WindowEvente)
if(isOnChat)
chat