java+五子棋报告(完整版).doc





《java+五子棋报告(完整版).doc》由会员分享,可在线阅读,更多相关《java+五子棋报告(完整版).doc(44页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、下面的源代码分为4个文件; (2)chessInterface.java:客户端的界面。 (3)chessPad.java:棋盘的绘制。 (4)chessServer.java:服务器端。 可同时容纳50个人同时在线下棋,聊天。 public void acceptMessage(String recMessage) if(recMessage.startsWith(/userlist ) StringTokenizer userToken=new StringTokenizer(recMessage, ); int userNumber=0; chessclient.userpad.user
2、List.removeAll(); chessclient.inputpad.userChoice.removeAll(); chessclient.inputpad.userChoice.addItem(所有人); while(userToken.hasMoreTokens() String user=(String)userToken.nextToken( ); if(userNumber0 & !user.startsWith(inchess) chessclient.userpad.userList.add(user); chessclient.inputpad.userChoice.
3、addItem(user); userNumber+; chessclient.inputpad.userChoice.select(所有人); else if(recMessage.startsWith(/yourname ) chessclient.chessClientName=recMessage.substring(10); chessclient.setTitle(Java五子棋客户端 +用户名:+chessclient.chessClientName); else if(recMessage.equals(/reject) try chessclient.chesspad.sta
4、tusText.setText(不能加入游戏); chessclient.controlpad.cancelGameButton.setEnabled(false); chessclient.controlpad.joinGameButton.setEnabled(true); chessclient.controlpad.creatGameButton.setEnabled(true); catch(Exception ef) chessclient.chatpad.chatLineArea.setText(chessclient.chesspad.chessSocket.close无法关闭
5、); chessclient.controlpad.joinGameButton.setEnabled(true); else if(recMessage.startsWith(/peer ) chessclient.chesspad.chessPeerName=recMessage.substring(6); if(chessclient.isServer) chessclient.chesspad.chessColor=1; chessclient.chesspad.isMouseEnabled=true; chessclient.chesspad.statusText.setText(请
6、黑棋下子); else if(chessclient.isClient) chessclient.chesspad.chessColor=-1; chessclient.chesspad.statusText.setText(已加入游戏,等待对方下子.); else if(recMessage.equals(/youwin) chessclient.isOnChess=false; chessclient.chesspad.chessVictory(chessclient.chesspad.chessColor); chessclient.chesspad.statusText.setText
7、(对方退出,请点放弃游戏退出连接); chessclient.chesspad.isMouseEnabled=false; else if(recMessage.equals(/OK) chessclient.chesspad.statusText.setText(创建游戏成功,等待别人加入.); else if(recMessage.equals(/error) chessclient.chatpad.chatLineArea.append(传输错误:请退出程序,重新加入 n); else chessclient.chatpad.chatLineArea.append(recMessage+
8、n); chessclient.chatpad.chatLineArea.setCaretPosition( chessclient.chatpad.chatLineArea.getText().length(); public void run() String message=; try while(true) message=chessclient.in.readUTF(); acceptMessage(message); catch(IOException es) public class chessClient extends Frame implements ActionListe
9、ner,KeyListener userPad userpad=new userPad(); chatPad chatpad=new chatPad(); controlPad controlpad=new controlPad(); chessPad chesspad=new chessPad(); inputPad inputpad=new inputPad(); Socket chatSocket; DataInputStream in; DataOutputStream out; String chessClientName=null; String host=null; int po
10、rt=4331; boolean isOnChat=false; /在聊天? boolean isOnChess=false; /在下棋? boolean isGameConnected=false; /下棋的客户端连接? boolean isServer=false; /如果是下棋的主机 boolean isClient=false; /如果是下棋的客户端 Panel southPanel=new Panel(); Panel northPanel=new Panel(); Panel centerPanel=new Panel(); Panel westPanel=new Panel();
11、 Panel eastPanel=new Panel(); chessClient() super(Java五子棋客户端); setLayout(new BorderLayout(); host=controlpad.inputIP.getText(); westPanel.setLayout(new BorderLayout(); westPanel.add(userpad,BorderLayout.NORTH); westPanel.add(chatpad,BorderLayout.CENTER); westPanel.setBackground(Color.pink); inputpad
12、.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.addActionList
13、ener(this); controlpad.joinGameButton.addActionListener(this); controlpad.cancelGameButton.addActionListener(this); controlpad.exitGameButton.addActionListener(this); controlpad.creatGameButton.setEnabled(false); controlpad.joinGameButton.setEnabled(false); controlpad.cancelGameButton.setEnabled(fal
14、se); southPanel.add(controlpad,BorderLayout.CENTER); southPanel.setBackground(Color.pink); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) if(isOnChat) try chatSocket.close(); catch(Exception ed) if(isOnChess | isGameConnected) try chesspad.chessSocket.close(); catch(E
15、xception ee) System.exit(0); public void windowActivated(WindowEvent ea) ); add(westPanel,BorderLayout.WEST); add(centerPanel,BorderLayout.CENTER); add(southPanel,BorderLayout.SOUTH); pack(); setSize(670,548); setVisible(true); setResizable(false); validate(); public boolean connectServer(String ser
16、verIP,int serverPort) throws Exception try chatSocket=new Socket(serverIP,serverPort); in=new DataInputStream(chatSocket.getInputStream(); out=new DataOutputStream(chatSocket.getOutputStream(); clientThread clientthread=new clientThread(this); clientthread.start(); isOnChat=true; return true; catch(
17、IOException ex) chatpad.chatLineArea.setText(chessClient:connectServer:无法连接,建议重新启动程序 n); return false; public void actionPerformed(ActionEvent e) if(e.getSource()=controlpad.connectButton) host=chesspad.host=controlpad.inputIP.getText(); try if(connectServer(host,port) chatpad.chatLineArea.setText()
18、; controlpad.connectButton.setEnabled(false); controlpad.creatGameButton.setEnabled(true); controlpad.joinGameButton.setEnabled(true); chesspad.statusText.setText(连接成功,请创建游戏或加入游戏); catch(Exception ei) chatpad.chatLineArea.setText(controlpad.connectButton:无法连接,建议重新启动程序 n); if(e.getSource()=controlpad
19、.exitGameButton) if(isOnChat) try chatSocket.close(); catch(Exception ed) if(isOnChess | isGameConnected) try chesspad.chessSocket.close(); catch(Exception ee) System.exit(0); if(e.getSource()=controlpad.joinGameButton) String selectedUser=userpad.userList.getSelectedItem(); if(selectedUser=null | s
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 五子棋 报告 完整版

限制150内