亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? chessclient.java

?? 一個別人做的五子棋游戲
?? JAVA
字號:

package org.main;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Frame;
import java.awt.Panel;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.util.StringTokenizer;

class clientThread extends Thread
{
	chessClient chessclient;

	clientThread(chessClient chessclient)
	{
		this.chessclient = chessclient;
	}

	public void acceptMessage(String recMessage)
	{
		if (recMessage.startsWith("/userlist "))
		{
			StringTokenizer userToken = new StringTokenizer(recMessage, " ");
			int userNumber = 0;

			chessclient.userpad.userList.removeAll();
			chessclient.inputpad.userChoice.removeAll();
			chessclient.inputpad.userChoice.addItem("所有人");
			while (userToken.hasMoreTokens())
			{
				String user = (String) userToken.nextToken(" ");
				if (userNumber > 0 && !user.startsWith("[inchess]"))
				{
					chessclient.userpad.userList.add(user);
					chessclient.inputpad.userChoice.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.statusText.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無法關閉");
					}
					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("請黑棋下子");
						}
						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("對方退出,請點放棄游戲退出連接");
							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 + "\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 ActionListener,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 port = 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();

	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.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(new WindowAdapter()
		{
			public void windowClosing(WindowEvent e)
			{
				if (isOnChat)
				{
					try
					{
						chatSocket.close();
					}
					catch (Exception ed)
					{
					}
				}
				if (isOnChess || isGameConnected)
				{
					try
					{
						chesspad.chessSocket.close();
					}
					catch (Exception 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 serverIP, 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 (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("");
					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.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 || selectedUser.startsWith("[inchess]")
					|| selectedUser.equals(chessClientName))
			{
				chesspad.statusText.setText("必須先選定一個有效用戶");
			}
			else
			{
				try
				{
					if (!isGameConnected)
					{
						if (chesspad
								.connectServer(chesspad.host, chesspad.port))
						{
							isGameConnected = true;
							isOnChess = true;
							isClient = true;
							controlpad.creatGameButton.setEnabled(false);
							controlpad.joinGameButton.setEnabled(false);
							controlpad.cancelGameButton.setEnabled(true);
							chesspad.chessthread.sendMessage("/joingame "
									+ userpad.userList.getSelectedItem() + " "
									+ chessClientName);
						}
					}
					else
					{
						isOnChess = true;
						isClient = true;
						controlpad.creatGameButton.setEnabled(false);
						controlpad.joinGameButton.setEnabled(false);
						controlpad.cancelGameButton.setEnabled(true);
						chesspad.chessthread.sendMessage("/joingame "
								+ userpad.userList.getSelectedItem() + " "
								+ chessClientName);
					}

				}
				catch (Exception ee)
				{
					isGameConnected = false;
					isOnChess = false;
					isClient = false;
					controlpad.creatGameButton.setEnabled(true);
					controlpad.joinGameButton.setEnabled(true);
					controlpad.cancelGameButton.setEnabled(false);
					chatpad.chatLineArea
							.setText("chesspad.connectServer無法連接 \n" + ee);
				}

			}
		}
		if (e.getSource() == controlpad.creatGameButton)
		{
			try
			{
				if (!isGameConnected)
				{
					if (chesspad.connectServer(chesspad.host, chesspad.port))
					{
						isGameConnected = true;
						isOnChess = true;
						isServer = true;
						controlpad.creatGameButton.setEnabled(false);
						controlpad.joinGameButton.setEnabled(false);
						controlpad.cancelGameButton.setEnabled(true);
						chesspad.chessthread.sendMessage("/creatgame "
								+ "[inchess]" + chessClientName);
					}
				}
				else
				{
					isOnChess = true;
					isServer = true;
					controlpad.creatGameButton.setEnabled(false);
					controlpad.joinGameButton.setEnabled(false);
					controlpad.cancelGameButton.setEnabled(true);
					chesspad.chessthread.sendMessage("/creatgame "
							+ "[inchess]" + chessClientName);
				}
			}
			catch (Exception ec)
			{
				isGameConnected = false;
				isOnChess = false;
				isServer = false;
				controlpad.creatGameButton.setEnabled(true);
				controlpad.joinGameButton.setEnabled(true);
				controlpad.cancelGameButton.setEnabled(false);
				ec.printStackTrace();
				chatpad.chatLineArea.setText("chesspad.connectServer無法連接 \n"
						+ ec);
			}

		}
		if (e.getSource() == controlpad.cancelGameButton)
		{
			if (isOnChess)
			{
				chesspad.chessthread.sendMessage("/giveup " + chessClientName);
				chesspad.chessVictory(-1 * chesspad.chessColor);
				controlpad.creatGameButton.setEnabled(true);
				controlpad.joinGameButton.setEnabled(true);
				controlpad.cancelGameButton.setEnabled(false);
				chesspad.statusText.setText("請建立游戲或者加入游戲");
			}
			if (!isOnChess)
			{
				controlpad.creatGameButton.setEnabled(true);
				controlpad.joinGameButton.setEnabled(true);
				controlpad.cancelGameButton.setEnabled(false);
				chesspad.statusText.setText("請建立游戲或者加入游戲");
			}
			isClient = isServer = false;
		}

	}

	public void keyPressed(KeyEvent e)
	{
		TextField inputWords = (TextField) e.getSource();

		if (e.getKeyCode() == KeyEvent.VK_ENTER)
		{
			if (inputpad.userChoice.getSelectedItem().equals("所有人"))
			{
				try
				{
					out.writeUTF(inputWords.getText());
					inputWords.setText("");
				}
				catch (Exception ea)
				{
					chatpad.chatLineArea
							.setText("chessClient:KeyPressed無法連接,建議重新連接 \n");
					userpad.userList.removeAll();
					inputpad.userChoice.removeAll();
					inputWords.setText("");
					controlpad.connectButton.setEnabled(true);
				}
			}
			else
			{
				try
				{
					out.writeUTF("/" + inputpad.userChoice.getSelectedItem()
							+ " " + inputWords.getText());
					inputWords.setText("");
				}
				catch (Exception ea)
				{
					chatpad.chatLineArea
							.setText("chessClient:KeyPressed無法連接,建議重新連接 \n");
					userpad.userList.removeAll();
					inputpad.userChoice.removeAll();
					inputWords.setText("");
					controlpad.connectButton.setEnabled(true);
				}
			}
		}
	}

	public void keyTyped(KeyEvent e)
	{
	}

	public void keyReleased(KeyEvent e)
	{
	}

	public static void main(String args[])
	{
		chessClient chessClient = new chessClient();
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美一区二区精品婷婷| 欧美在线短视频| 国产精品996| 99精品欧美一区二区三区小说 | 欧美日韩综合色| 日韩欧美一级片| 国产日韩欧美电影| 一区二区在线电影| 亚洲国产aⅴ成人精品无吗| 日本美女一区二区| 国产电影一区在线| 欧美午夜精品一区二区三区| 精品88久久久久88久久久| 国产精品欧美综合在线| 天天免费综合色| 不卡av在线网| 久久综合狠狠综合久久综合88| 亚洲欧美一区二区三区国产精品| 免费亚洲电影在线| 欧美成va人片在线观看| 日韩精品一二三区| 色哟哟一区二区在线观看| 欧美mv和日韩mv国产网站| 亚洲视频小说图片| www.色精品| 国产精品你懂的在线| 国产乱码精品一区二区三区av| 欧美一区二区三区在线观看| 综合av第一页| 99在线精品一区二区三区| 国产亚洲视频系列| 国产成人自拍网| 久久久久国产精品麻豆| 丰满少妇在线播放bd日韩电影| 国产视频一区在线播放| 国产ts人妖一区二区| 国产日产欧美精品一区二区三区| 精一区二区三区| 久久精品亚洲精品国产欧美| 国产99久久久国产精品潘金 | 国产精品一区二区三区四区| 久久影院视频免费| 国产99久久久国产精品潘金| 中文字幕五月欧美| 欧美日韩精品电影| 国产ts人妖一区二区| 国产欧美日产一区| 欧美一级国产精品| 国产成人激情av| 亚洲小少妇裸体bbw| 欧美一卡二卡在线| 国产精品正在播放| 亚洲精品美国一| 日韩视频免费观看高清在线视频| 狠狠狠色丁香婷婷综合久久五月| 欧美激情在线一区二区| 欧美三级三级三级爽爽爽| 激情久久五月天| 亚洲一区精品在线| 欧美国产97人人爽人人喊| 69久久夜色精品国产69蝌蚪网| 国产一区二区毛片| 免费精品视频在线| 亚洲综合精品自拍| 国产精品成人免费精品自在线观看| 欧美日韩精品欧美日韩精品一| 成人av网址在线观看| 国产制服丝袜一区| 日韩电影在线免费观看| 亚洲美女视频在线| 欧美96一区二区免费视频| 中文av一区特黄| 欧美国产精品专区| 国产人久久人人人人爽| 日韩欧美aaaaaa| 日韩欧美中文一区| 欧美电影免费观看高清完整版在线观看 | 天堂va蜜桃一区二区三区 | 成人免费高清视频在线观看| 激情综合色综合久久综合| 日本中文字幕一区| 精品一区二区三区香蕉蜜桃 | 欧美体内she精视频| 欧美少妇xxx| 国产精品电影一区二区三区| 欧美激情一区二区三区在线| 国产丝袜在线精品| 国产精品午夜电影| 国产精品国模大尺度视频| 国产精品九色蝌蚪自拍| 亚洲一区二区欧美日韩| 韩国成人精品a∨在线观看| 国产精品亚洲成人| 91在线丨porny丨国产| 欧美肥大bbwbbw高潮| 18欧美亚洲精品| 日韩不卡在线观看日韩不卡视频| 麻豆精品新av中文字幕| 波多野结衣中文字幕一区| 欧美日韩大陆一区二区| 久久综合九色综合欧美就去吻| 亚洲欧美日韩国产成人精品影院| 亚洲成人动漫一区| 97se亚洲国产综合自在线| 日韩欧美中文字幕精品| 亚洲男女毛片无遮挡| 老鸭窝一区二区久久精品| 在线观看国产一区二区| 精品久久久久久最新网址| 亚洲欧洲韩国日本视频 | 欧美日产国产精品| 国产精品久久久久aaaa樱花| 国内精品第一页| 69堂成人精品免费视频| 亚洲精品视频免费观看| 成人自拍视频在线观看| 26uuu国产电影一区二区| 日韩精品一区第一页| 欧美午夜影院一区| 亚洲人成网站在线| 色婷婷亚洲精品| 亚洲午夜激情av| 色婷婷综合久久久久中文一区二区| 国产精品久线观看视频| 91美女片黄在线观看| 亚洲精品乱码久久久久久久久| 国产99久久精品| 欧美激情一区在线观看| 91在线一区二区| 亚洲一本大道在线| 久久亚洲一区二区三区四区| 国产99久久久国产精品潘金| 自拍偷拍亚洲综合| 欧美日韩国产影片| 日本欧美一区二区三区| 欧美成人一区二区三区片免费| 蜜桃免费网站一区二区三区| 久久久久国产成人精品亚洲午夜| 久久精品国内一区二区三区| 中文字幕视频一区二区三区久| 日本精品裸体写真集在线观看 | 欧美性受xxxx| 奇米精品一区二区三区在线观看 | 韩国一区二区在线观看| 亚洲欧洲精品一区二区精品久久久| 精品视频在线看| 国产精品一二二区| 亚洲国产成人高清精品| 久久一夜天堂av一区二区三区| eeuss鲁一区二区三区| 毛片av中文字幕一区二区| 国产精品久久久久久妇女6080 | 国产高清久久久| 五月天精品一区二区三区| 国产精品久久久久久亚洲毛片 | 韩国女主播成人在线| 亚洲精品福利视频网站| 国产日韩欧美综合在线| 欧美精品第1页| av在线综合网| 国产91富婆露脸刺激对白 | 精品国产一区二区在线观看| 欧美色综合久久| 一本大道综合伊人精品热热| 成人性生交大合| 国产一区视频在线看| 精品一区二区三区免费| 日本午夜一区二区| 蜜臀av一区二区在线免费观看| 日韩在线一区二区三区| 日av在线不卡| 国精产品一区一区三区mba视频| 日韩av电影免费观看高清完整版在线观看| 亚洲精品高清视频在线观看| 亚洲综合网站在线观看| 午夜日韩在线电影| 视频一区视频二区在线观看| 青娱乐精品视频在线| 蜜臀av一区二区| 国产一区二区女| 色噜噜久久综合| 91精品国产综合久久香蕉麻豆| 欧美一级免费观看| 国产午夜精品在线观看| 中文字幕一区在线观看视频| 亚洲综合视频在线观看| 日韩不卡一区二区| 国产99久久久精品| 国产亚洲人成网站| 亚洲成av人片观看| 成人小视频在线观看| 精品视频一区二区三区免费| 精品不卡在线视频| 色综合久久中文字幕| 欧美精品一区二区在线观看| 久久国产夜色精品鲁鲁99| 精品电影一区二区| 九九国产精品视频| 欧美美女喷水视频| 亚洲男人电影天堂|