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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? chessclient.java

?? Eclipse編程技術(shù)與實(shí)例一書配套的光盤代碼全部?jī)?nèi)容
?? JAVA
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
package com.fivechess.client;

import com.fivechess.chessface.chatPad;
import com.fivechess.chessface.inputPad;
import com.fivechess.chessface.userPad;
import com.fivechess.chessface.chessPad;
import com.fivechess.chessface.controlPad;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
import java.util.*;
import javax.swing.JColorChooser;

/**
 * @author wufenghanren 
 * 五子棋客戶端框架,實(shí)現(xiàn)了動(dòng)作監(jiān)聽器和鍵盤監(jiān)聽器
 */

public class chessClient extends Frame implements ActionListener, KeyListener {
	userPad userpad = new userPad();//用戶列表Panel

	chatPad chatpad = new chatPad();//聊天信息Panel

	controlPad controlpad = new controlPad();//控制Panel

	chessPad chesspad = new chessPad();//棋盤Panel

	inputPad inputpad = new inputPad();//信息輸入Panel

	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; //是否建立游戲的主機(jī)

	boolean isClient = false; //是否加入游戲的客戶端

	Panel southPanel = new Panel();

	Panel centerPanel = new Panel();

	Panel westPanel = new Panel();

	/*
	 * 五子棋客戶端框架的構(gòu)造函數(shù)。用來(lái)初始化一些對(duì)象、布局和為按鈕添加監(jiān)聽器。
	 */
	public chessClient() {
		super("五子棋客戶端");
		setLayout(new BorderLayout());
		host = controlpad.inputIP.getText();

		westPanel.setLayout(new BorderLayout());
		westPanel.add(userpad, BorderLayout.NORTH);
		westPanel.add(chatpad, BorderLayout.CENTER);
		westPanel.setBackground(new Color(204, 204, 204));

		inputpad.inputWords.addKeyListener(this);
		chesspad.host = controlpad.inputIP.getText();

		centerPanel.add(chesspad, BorderLayout.CENTER);
		centerPanel.add(inputpad, BorderLayout.SOUTH);
		centerPanel.setBackground(new Color(204, 204, 204));

		controlpad.connectButton.addActionListener(this);
		controlpad.creatGameButton.addActionListener(this);
		controlpad.joinGameButton.addActionListener(this);
		controlpad.cancelGameButton.addActionListener(this);
		controlpad.colorChangeButton.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(new Color(204, 204, 204));
		//添加窗口監(jiān)聽器,當(dāng)窗口關(guān)閉時(shí),關(guān)閉用于通訊的Socket。
		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);
			}
		});

		add(westPanel, BorderLayout.WEST);
		add(centerPanel, BorderLayout.CENTER);
		add(southPanel, BorderLayout.SOUTH);

		setSize(670, 548);
		setVisible(true);
		setResizable(true);
		validate();
	}

	/**
	 * 和服務(wù)器建立連接并通信的函數(shù)。
	 */
	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:無(wú)法連接,建議重新啟動(dòng)程序 \n");
		}
		return false;
	}

	/**
	 * 動(dòng)作監(jiān)聽器,響應(yīng)按鈕點(diǎn)擊動(dòng)作。
	 */
	public void actionPerformed(ActionEvent e) {
		//如果點(diǎn)擊的是“連接主機(jī)”按鈕,則用獲取的服務(wù)器主機(jī)名連接服務(wù)器。
		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("連接成功,請(qǐng)創(chuàng)建游戲或加入游戲");
				}

			} catch (Exception ei) {
				chatpad.chatLineArea
						.setText("controlpad.connectButton:無(wú)法連接,建議重新啟動(dòng)程序 \n");
			}
		}
		//		如果點(diǎn)擊的是“關(guān)閉程序”按鈕,則關(guān)閉正在進(jìn)行通信的Socekt并退出游戲。
		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);

		}
		//如果點(diǎn)擊的是“加入游戲”按鈕,則先判斷選定的加入的目標(biāo)是否有效。
		//如果選定的目標(biāo)為空或正在下棋或?yàn)槠浔旧恚瑒t認(rèn)為目標(biāo)無(wú)效。
		if (e.getSource() == controlpad.joinGameButton) {
			String selectedUser = userpad.userList.getSelectedItem();
			if (selectedUser == null || selectedUser.startsWith("[inchess]")
					|| selectedUser.equals(chessClientName)) {
				chesspad.statusText.setText("必須先選定一個(gè)有效用戶");
			} else {
				try {
					//如果未建立與服務(wù)器的連接,創(chuàng)建連接,設(shè)定用戶的當(dāng)前狀態(tài)。
					//此外還要對(duì)按鈕作一些處理,將“創(chuàng)建連接”按鈕和“加入游戲按鈕”設(shè)為不可用。
					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無(wú)法連接 \n" + ee);

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人免费视频一区| 亚洲第一久久影院| 国产电影精品久久禁18| 精品成a人在线观看| 精品在线观看视频| 久久久久高清精品| 91网址在线看| 性欧美疯狂xxxxbbbb| 日韩一级片在线播放| 久久99精品国产.久久久久久| 日韩欧美一区在线| 国产精品一区二区久久不卡| 欧美激情一区二区三区蜜桃视频| av不卡免费在线观看| 亚洲另类色综合网站| 91精品婷婷国产综合久久竹菊| 蜜臂av日日欢夜夜爽一区| 久久亚洲一级片| 不卡大黄网站免费看| 亚洲综合男人的天堂| 日韩一区二区电影网| 岛国一区二区在线观看| 一区二区免费在线| 久久综合给合久久狠狠狠97色69| 成人激情小说网站| 日一区二区三区| 国产亚洲人成网站| 欧美性生活大片视频| 激情综合网最新| 亚洲免费在线视频| 精品美女被调教视频大全网站| 成人激情开心网| 日韩高清不卡一区二区| 国产精品看片你懂得| 在线成人高清不卡| jizz一区二区| 久久国产视频网| 夜夜精品浪潮av一区二区三区| 精品日韩一区二区三区免费视频| 一道本成人在线| 国产美女精品人人做人人爽| 夜夜嗨av一区二区三区中文字幕| 久久蜜桃一区二区| 欧美精品亚洲一区二区在线播放| 成人avav影音| 韩国午夜理伦三级不卡影院| 亚洲成人动漫在线观看| 日本一区二区三区在线观看| 欧美日韩亚洲另类| 99久久精品国产毛片| 国产综合色精品一区二区三区| 亚洲高清免费观看 | 7777精品伊人久久久大香线蕉最新版| 国产一区二区91| 奇米四色…亚洲| 五月激情六月综合| 一区二区三区欧美亚洲| 国产精品午夜在线观看| 精品福利一二区| 日韩一级大片在线| 欧美久久婷婷综合色| 欧美一a一片一级一片| 97久久久精品综合88久久| 国产成人激情av| 国产一区二区三区电影在线观看| 日本欧美在线看| 中文字幕一区二区不卡| 国产性天天综合网| 久久久精品免费观看| 欧美变态凌虐bdsm| 91麻豆精品国产无毒不卡在线观看| 色综合天天综合网天天狠天天| 成人深夜在线观看| 成人av电影在线播放| 成人丝袜18视频在线观看| 国产成人夜色高潮福利影视| 国产精品综合在线视频| 国内精品视频666| 国产真实乱对白精彩久久| 老司机精品视频一区二区三区| 日韩精品乱码av一区二区| 视频一区二区欧美| 麻豆免费精品视频| 国产在线精品一区二区| 国产激情91久久精品导航| 国产一本一道久久香蕉| 粉嫩aⅴ一区二区三区四区五区| 国产精品一级在线| 波多野结衣亚洲| 色欧美88888久久久久久影院| 色一情一乱一乱一91av| 欧美日韩一区不卡| 亚洲国产精品成人综合色在线婷婷| 欧美日韩国产综合视频在线观看| eeuss影院一区二区三区| 成人久久18免费网站麻豆 | 成人久久18免费网站麻豆| 成人福利在线看| 在线欧美一区二区| 欧美一区二区在线免费播放| 精品久久久久香蕉网| 亚洲国产经典视频| 亚洲中国最大av网站| 日本不卡一区二区三区| 国产精品888| 91在线播放网址| 欧美高清视频一二三区| 久久久综合视频| 亚洲欧美视频在线观看视频| 三级影片在线观看欧美日韩一区二区| 激情六月婷婷久久| 91亚洲精华国产精华精华液| 欧美乱妇20p| 欧美激情艳妇裸体舞| 亚洲高清免费观看高清完整版在线观看| 男人的天堂亚洲一区| 丰满亚洲少妇av| 欧美日本一道本| 国产精品女上位| 奇米影视在线99精品| 国产69精品一区二区亚洲孕妇| 91色九色蝌蚪| 2023国产精华国产精品| 亚洲欧美色图小说| 韩国女主播一区二区三区| 在线观看一区日韩| 欧美成人三级电影在线| 亚洲乱码中文字幕综合| 紧缚奴在线一区二区三区| 欧美亚洲综合久久| 国产欧美日韩三区| 日本在线不卡一区| 色婷婷综合久久久久中文一区二区| 欧美一区二区三区四区五区| 中文字幕字幕中文在线中不卡视频| 琪琪久久久久日韩精品| 91激情在线视频| 国产精品天美传媒| 九一久久久久久| 精品视频一区 二区 三区| 国产精品美女久久久久久久久 | 三级久久三级久久| 91视频.com| 国产欧美视频在线观看| 奇米一区二区三区av| 欧美在线免费播放| 亚洲人成电影网站色mp4| 国产夫妻精品视频| 精品国产伦一区二区三区免费| 亚洲午夜精品一区二区三区他趣| 不卡的av在线| 国产精品免费丝袜| 丁香一区二区三区| 国产亚洲一区二区三区| 经典三级在线一区| 精品国产一二三区| 捆绑紧缚一区二区三区视频| 欧美日本国产视频| 亚洲五码中文字幕| 在线中文字幕不卡| 一片黄亚洲嫩模| 欧美中文字幕一区二区三区| ...xxx性欧美| 91丨九色丨蝌蚪丨老版| 中文字幕一区在线观看| 成人免费毛片a| 国产精品视频一区二区三区不卡| 国产精品一区免费在线观看| 精品精品欲导航| 九九国产精品视频| 亚洲精品一区二区在线观看| 久久99精品视频| wwwwxxxxx欧美| 国产一区二区精品在线观看| 久久综合久久鬼色| 国产成人一区在线| 综合中文字幕亚洲| 色综合夜色一区| 午夜欧美大尺度福利影院在线看| 欧美少妇bbb| 蜜桃一区二区三区在线| 欧美r级电影在线观看| 国产美女一区二区| 国产精品久久久久影院色老大| 91在线观看地址| 午夜私人影院久久久久| 91精品国产色综合久久不卡蜜臀| 蜜臀精品一区二区三区在线观看 | 精品国产99国产精品| 国产乱码字幕精品高清av| 国产精品视频yy9299一区| 97精品久久久午夜一区二区三区| 国产一区二区三区综合| 国产婷婷色一区二区三区在线| 成人av综合在线| 婷婷夜色潮精品综合在线| 精品少妇一区二区三区免费观看| 国产成人在线视频播放| 亚洲免费成人av| 日韩欧美成人激情|