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

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

?? chatfrm.java

?? 黑白棋123 黑白棋456 大學(xué)畢業(yè)設(shè)計(jì) 做很好
?? JAVA
字號(hào):

//********************************************************************
//
//    ChatFrm.java
//			
//				包含 ChatFrm 類,LogonFrm 類,PlayOnNetFrm類 				
//
//********************************************************************



import java.awt.*;
import java.io.*;
import OthelloPanel;
import java.awt.event.*;
import MessageBox;
import MySocket;

//處理Chat窗口
public class ChatFrm extends Frame
{	
	TextField m_input;	//輸入文本框
	TextArea m_text;	//輸出文本框
	Choice m_obj;		//閑聊對(duì)象選擇
	Checkbox m_secret;	//密談
	Button m_bSend;	
	Button m_bHide;
	Button m_bDisconnect;
	Button m_bReconnect;
	Button m_bPlayOnNet;
	String m_name;		//自己的名字
	OthelloPanel main;			
	boolean m_playing;	
	
	public ChatFrm(OthelloPanel _m)
	{
		main = _m;
		this.setSize(500,400);
		this.setBackground(Color.lightGray);
		BListener listener = new BListener();
				
		m_input = new TextField();
		m_text = new TextArea("",15,50,m_text.SCROLLBARS_VERTICAL_ONLY);
		m_obj = new Choice();
		m_bSend = new Button("發(fā)送");
		m_bDisconnect = new Button("斷開連接");
		m_bHide = new Button("隱藏窗口");
		m_bReconnect = new Button("重新連接");
		m_bPlayOnNet = new Button("網(wǎng)絡(luò)對(duì)戰(zhàn)");
		m_secret = new Checkbox("密談");
		
		this.layoutComponent();
		m_bSend.addActionListener(listener);
		m_bHide.addActionListener(listener);
		m_bReconnect.addActionListener(listener);
		m_bDisconnect.addActionListener(listener);
		m_bPlayOnNet.addActionListener(listener);
		m_input.addActionListener(new TListener());
		this.addWindowListener(new WListener());
		
		m_text.setEditable(false);
		this.setBackground(Color.lightGray );
		Color c = new Color(255,255,225);
		m_text.setBackground(c);
		c = new Color(111,111,183);
		m_text.setForeground(c);
		this.setResizable(false);
		this.pack();
				
		Font font = new Font("Arial",Font.PLAIN,14);
		m_text.setFont(font);
		m_input.setFont(font);
		
		m_bDisconnect.setEnabled(false);
		m_bPlayOnNet.setEnabled(false);
		setTitle("Net  ---  未連接");
			
		m_playing = false;
	}
	
	public void layoutComponent()
	{
		Panel panel = new Panel();
		
		GridBagLayout layout = new GridBagLayout();
		GridBagConstraints gbc = new GridBagConstraints();
			
		panel.setLayout(layout);
		panel.setBackground(Color.lightGray);
		gbc.anchor = GridBagConstraints.NORTHWEST;
		gbc.fill = GridBagConstraints.BOTH;
		gbc.gridheight = 6;
		gbc.gridwidth  = 5;
		gbc.insets = new Insets(5,5,5,5);
		gbc.weightx = 1;
		panel.add(m_text,gbc);

		gbc.fill = GridBagConstraints.HORIZONTAL;
		gbc.gridheight = 1;
		gbc.gridwidth = 1;
		gbc.ipadx =10;
		gbc.ipady = 3;
		gbc.gridx = 5;
		gbc.gridy = GridBagConstraints.RELATIVE;
		panel.add(m_bHide,gbc);
		panel.add(m_bDisconnect,gbc);
		panel.add(m_bReconnect,gbc);
		panel.add(m_bPlayOnNet,gbc);
		
		gbc.gridx = 1;
		gbc.gridy = 7;
		panel.add(new Label("你對(duì)",Label.RIGHT),gbc);
			
		gbc.gridx = GridBagConstraints.RELATIVE ;
		panel.add(m_obj,gbc);
		panel.add(new Label("說",Label.LEFT),gbc);
		panel.add(m_secret,gbc);
			
		gbc.gridx =1;
		gbc.gridy = 8 ;
		gbc.gridwidth = 4;
		panel.add(m_input,gbc);
			
		gbc.gridx = GridBagConstraints.RELATIVE ;
		panel.add(m_bSend,gbc);
		this.add(panel);
		this.pack();

	}

	class BListener implements ActionListener
	{
		public void actionPerformed(ActionEvent e)
		{
			if ( e.getSource() == m_bHide )
			{
				setVisible(false);
			}
			else
			if ( e.getSource() == m_bDisconnect )
			{
				main.m_ChatFrm.OnDisconnect();
			}
			else
			if ( e.getSource() == m_bSend )
			{
				OnSend();
			}
			else
			if ( e.getSource() == m_bReconnect)
			{
				OnReconnect();
			}
			else
			if ( e.getSource() == m_bPlayOnNet )
			{
				OnPlayOnNet();
			}
		}
	}
	
	class WListener extends WindowAdapter
	{
		public void windowClosing(WindowEvent e)
		{
			setVisible(false);
		}
	}
		
	class TListener implements ActionListener
	{
		public void actionPerformed(ActionEvent e)
		{
			OnInput();
		}
	}
	
	public void OnSend()
	{
		OnInput();
	}
	
	//輸入框有輸入
	public void OnInput()
	{
		if (! this.m_bDisconnect.isEnabled() ) 
		{
			this.m_input.setText("");
			return;
		}
		
		String input = m_input.getText();
		
		String obj = "";
		if( m_secret.getState())
		{
			//密談
			obj = m_obj.getSelectedItem();
			
			input = "<" + main.m_ChatFrm.m_name + "> 悄悄的對(duì) <" + obj + "> 說 :" + input ;

			if (main.m_socket != null ) main.m_socket.Send(22,obj,input);
		}
		else
		{
			//非密談
			input = "<" + main.m_ChatFrm.m_name + "> : " + input ;
			if (main.m_socket != null ) main.m_socket.Send(20,"",input);
		}
		
		input+="\n";
		m_text.append(input);
		m_input.setText("");
		
	}
	
	//斷開連接
	public void OnDisconnect()
	{
		if(main.m_socket != null)
		{
			main.m_socket.Send(5,"","");
			main.m_socket.quit = true;			
			main.m_socket = null ;
		}
	}	

	//重新連接
	public void OnReconnect()
	{
		new LogonFrm(this);
		if(m_name != null )
		{
			main.m_socket = new MySocket(main);
			if(main.m_socket.initNet())
			{
				main.m_socket.start();
				main.m_ChatFrm.m_bDisconnect.setEnabled(true);
				main.m_ChatFrm.m_bReconnect.setEnabled(false);
				main.m_ChatFrm.m_bPlayOnNet.setEnabled(true);
				this.setTitle("Net  ---  " + this.m_name + "  ---   連接到 " + main.m_socket.m_socket.getInetAddress());
			}
		}
	}
	
	//網(wǎng)絡(luò)挑戰(zhàn)
	public void OnPlayOnNet()
	{
		new PlayOnNetFrm(this);
	}
	
	//關(guān)閉窗口
	public void dispose()
	{
		OnDisconnect();
		super.dispose();
	}
}



// 登陸窗口
class LogonFrm extends Dialog 
{
	TextField getname;
	Label label1;
	Button m_bOk;
	Button m_bCancel;
	ChatFrm main;
	
	public LogonFrm(Frame parent)
	{
		super(parent,true);
		BListener listener = new BListener();
		
		main = (ChatFrm)parent;
		getname = new TextField("",15);
		m_bOk = new Button("確定");
		m_bCancel = new Button("取消");
		label1 = new Label("你的名字是:");
		
		m_bOk.addActionListener(listener);
		m_bCancel.addActionListener(listener);
		this.addWindowListener(new WListener());
		GridBagLayout gridbag = new GridBagLayout();
		GridBagConstraints gbc = new GridBagConstraints();
		this.setLayout(gridbag);
		
		gbc.anchor = GridBagConstraints.WEST ;
		gbc.fill = GridBagConstraints.NONE;
		gbc.weightx = 1;
		gbc.weighty = 1;
		gbc.ipady = 5;
		gbc.insets = new Insets(5,20,5,20);		
		gbc.gridy = 0;
		gbc.gridx = GridBagConstraints.REMAINDER;
		add(label1,gbc);

		gbc.anchor = GridBagConstraints.CENTER ;
		gbc.weighty  = 0;
		gbc.weightx = 0;
		gbc.gridy = 1;
		gbc.ipadx = 10;
		gbc.ipady = 5;
		add(getname,gbc);
		
		gbc.fill = GridBagConstraints.BOTH;
		Panel buttonPanel = new Panel();
		gbc.gridy = 2;
		add(buttonPanel,gbc);
		
		buttonPanel.setLayout(new GridLayout(1,2,10,10));
		buttonPanel.add(m_bOk);
		buttonPanel.add(m_bCancel);
		
		this.pack();
		Color c = new Color(192,192,192);
		this.setBackground(c);
		
		this.setTitle("登陸");
		this.setResizable(false);
		this.show();
	}
	
	class BListener implements ActionListener 
	{
		public void actionPerformed(ActionEvent e)
		{
			if( e.getSource() == m_bOk )
			{
				if(!(getname.getText()).equals ( "") )
				{
					main.m_name = getname.getText();
					dispose();
				}
				else MessageBox.createMessageBox("請(qǐng)先輸入一個(gè)名字","登陸失敗");
			}
			if (e.getSource() == m_bCancel)
			{
				main.m_name = null;
				dispose();
			}
		}
	}
	
	class WListener extends WindowAdapter
	{
		public void windowClosing(WindowEvent e)
		{
			main.m_name = null;
			setVisible(false);
		}
	}
}


// 對(duì)戰(zhàn)挑戰(zhàn)窗口
class PlayOnNetFrm extends Dialog
{
	Choice player;
	Button m_bOk;
	Button m_bCancel;
	Label label;
	Label label2;
	Othello main;
	CheckboxGroup hand;
	Checkbox black;
	Checkbox white;
	Frame parent;
	
	public PlayOnNetFrm(Frame _parent)
	{
		super(_parent,true);
		BListener listener = new BListener();
		parent = _parent;
		this.setResizable(false);
		this.setTitle( "挑戰(zhàn) !!");

		GridBagLayout layout = new GridBagLayout();
		GridBagConstraints gbc = new GridBagConstraints();
			
		this.setLayout(layout);
		this.setBackground(Color.lightGray);
		
		label = new Label("向");
		label2 = new Label("發(fā)出挑戰(zhàn)要求");
		player = new Choice();
		m_bOk = new Button("決定");
		m_bCancel = new Button("放棄");
		hand = new CheckboxGroup();
		black = new Checkbox("執(zhí)黑先行");
		white = new Checkbox("執(zhí)白后行");
		
		
		gbc.anchor = GridBagConstraints.CENTER;
		gbc.fill = GridBagConstraints.BOTH;
		gbc.gridheight = 1;
		gbc.gridwidth  = 1;
		
		gbc.weightx = 0;
		gbc.gridy = 1;
		gbc.insets = new Insets(5,15,5,5);
		add(label,gbc);
		
		gbc.ipadx = 60;
		gbc.gridy = 1;
		gbc.weightx = 1;
		add(player,gbc);
		gbc.ipadx = 0;
		add(label2,gbc);
	
		gbc.gridwidth  = 3;
		gbc.gridy = 2;
		gbc.gridx = GridBagConstraints.REMAINDER;
		add(black,gbc);
		gbc.gridy = 3;
		add(white,gbc);
		
		Panel buttonPanel = new Panel();
		gbc.gridy = 4;
		gbc.gridx = GridBagConstraints.REMAINDER;
		gbc.fill = GridBagConstraints.NONE;
		gbc.ipadx = 40;
		gbc.ipady = 5;
		add(buttonPanel,gbc);
		buttonPanel.setLayout(new GridLayout(1,2));
		buttonPanel.add(m_bOk);
		buttonPanel.add(m_bCancel);
		this.pack();
		
		m_bOk.addActionListener(listener);
		m_bCancel.addActionListener(listener);
		this.addWindowListener(new WListener());
		
		black.setCheckboxGroup(hand);
		white.setCheckboxGroup(hand);
		black.setState(true);
		
		ChatFrm p = (ChatFrm)parent;
		int i;
		for(i=0;i<MySocket.MAXCLIENT;i++)
		{
			if (p.main.m_socket.m_client[i] != null )
				player.add(p.main.m_socket.m_client[i]);
		}
		
		this.show();
	}

	class BListener implements ActionListener
	{
		public void actionPerformed(ActionEvent e)
		{
			if( e.getSource() == m_bOk)
			{
				if (MessageBox.createMessageBox("你決定向 " + player.getSelectedItem() + " 挑戰(zhàn)么 ? " , "挑戰(zhàn) !! " ,1))
				{
					ChatFrm p = (ChatFrm)parent;
					if(black.getState())
					{
						p.main.m_socket.Send(7,player.getSelectedItem(),p.m_name);
						p.main.m_RivalSide = p.main.WHITE;
					}
					else
					{	
						p.main.m_socket.Send(8,player.getSelectedItem(),p.m_name);
						p.main.m_RivalSide = p.main.BLACK;
					}
					
					p.main.m_Rival = player.getSelectedItem();
					dispose();
				}
			}
			else
			if( e.getSource() == m_bCancel)
			{
				dispose();
			}
		}
	}
	
	class WListener extends WindowAdapter
	{
		public void windowClosing(WindowEvent e)
		{
			dispose();
		}
	}
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产99久久久国产精品潘金| 精品国产精品网麻豆系列| eeuss鲁片一区二区三区在线看 | 成人性生交大片免费看视频在线| 精品一区二区三区影院在线午夜| 理论电影国产精品| 久久精品免费观看| 精品在线免费观看| 国产一区二区三区视频在线播放| 国产精品伊人色| 成人午夜视频网站| www.在线成人| 色成人在线视频| 欧美色图免费看| 欧美一级理论片| 欧美xxxx老人做受| 欧美激情一区二区三区不卡| 国产精品久久久99| 亚洲另类在线一区| 日韩精品久久理论片| 激情欧美一区二区| 丁香啪啪综合成人亚洲小说| 91视频免费播放| 91.xcao| 精品国产免费一区二区三区四区 | 欧洲国内综合视频| 91精品国产一区二区三区| 精品区一区二区| 国产情人综合久久777777| 亚洲视频一区二区在线| 亚洲观看高清完整版在线观看| 日本在线不卡视频| 国产成人在线免费观看| 99久久精品国产一区二区三区| 欧美视频精品在线观看| 欧美xxxx在线观看| 亚洲精选一二三| 日韩二区三区在线观看| 国产精品羞羞答答xxdd| 日本韩国欧美国产| 精品国产乱码久久久久久牛牛| 日本一区二区高清| 婷婷一区二区三区| eeuss影院一区二区三区 | 国产精品国产三级国产有无不卡| 一区二区三区在线观看网站| 免费三级欧美电影| av在线不卡免费看| 欧美一区二区日韩| 亚洲欧洲综合另类在线| 蜜桃91丨九色丨蝌蚪91桃色| 国产一区不卡在线| 在线亚洲一区二区| 久久先锋影音av鲁色资源| 一区二区三区美女视频| 国产精品99久久久久久宅男| 欧美日免费三级在线| 欧美国产日韩在线观看| 日本不卡一区二区| 色哟哟日韩精品| 久久久美女毛片| 日韩av一级电影| 色综合av在线| 国产精品婷婷午夜在线观看| 日韩1区2区日韩1区2区| 91小视频在线| 欧美激情综合五月色丁香小说| 亚洲成人自拍网| 91丝袜国产在线播放| 国产日韩亚洲欧美综合| 美女视频黄a大片欧美| 欧美视频在线一区| 中文字幕在线不卡| 国产成人精品综合在线观看 | 国产色产综合色产在线视频| 午夜电影久久久| 一本到一区二区三区| 中文无字幕一区二区三区| 韩国av一区二区三区在线观看| 欧美日韩一区二区三区视频| 中文字幕亚洲综合久久菠萝蜜| 国产激情一区二区三区| 欧美v亚洲v综合ⅴ国产v| 日韩高清一区在线| 欧美日韩一区二区在线视频| 亚洲精品国产高清久久伦理二区| 99在线精品观看| 国产精品视频线看| 国产成+人+日韩+欧美+亚洲| 久久久久亚洲蜜桃| 激情文学综合网| 精品少妇一区二区三区在线视频| 青青草国产精品亚洲专区无| 欧美色综合久久| 亚洲午夜视频在线观看| 欧美性高清videossexo| 怡红院av一区二区三区| 色综合久久久久| 自拍偷自拍亚洲精品播放| 成人国产精品免费观看动漫| 欧美韩国日本不卡| 成人做爰69片免费看网站| 精品精品国产高清a毛片牛牛 | 成人国产视频在线观看| 国产精品网站在线观看| www.99精品| 一区二区三区欧美| 91国偷自产一区二区三区观看| 伊人色综合久久天天| 欧美制服丝袜第一页| 亚洲午夜久久久久久久久久久| 欧美影院午夜播放| 日韩国产精品久久久| 欧美一区二区视频免费观看| 日本欧美加勒比视频| 日韩免费在线观看| 国产成人在线观看免费网站| 国产精品美女视频| 在线欧美小视频| 日韩福利电影在线| 久久精品一区二区三区av| 成人三级伦理片| 亚洲精品网站在线观看| 欧美三级日韩三级| 久久不见久久见免费视频1 | 国产宾馆实践打屁股91| 中文字幕一区二区三区av| 91日韩一区二区三区| 亚洲成人动漫在线免费观看| 日韩精品一区二区三区在线播放| 国产精品一级在线| 亚洲免费在线看| 51精品国自产在线| 国产精品白丝av| 一区二区三区四区五区视频在线观看 | 精品在线一区二区| 中文字幕一区二区三区av| 欧美丰满一区二区免费视频| 国产呦精品一区二区三区网站| 国产精品伦一区| 51精品秘密在线观看| 成人一二三区视频| 亚洲国产成人高清精品| 精品国产一区二区三区久久久蜜月| 盗摄精品av一区二区三区| 亚洲国产视频一区二区| 久久久久久久一区| 欧美网站大全在线观看| 国产经典欧美精品| 性感美女久久精品| 国产精品理论片在线观看| 欧美一区二区视频在线观看| 99v久久综合狠狠综合久久| 日本成人中文字幕| 中文字幕一区av| 精品国产免费视频| 欧美亚洲一区二区在线观看| 国产成人精品三级| 丝袜美腿亚洲一区二区图片| 欧美国产日本韩| 日韩欧美专区在线| 在线免费观看日本一区| 国产久卡久卡久卡久卡视频精品| 亚洲午夜在线视频| 中文字幕一区二区三区av| 精品入口麻豆88视频| 欧美日韩免费高清一区色橹橹 | 日韩一级欧美一级| 色一情一伦一子一伦一区| 国产在线一区二区| 午夜精品久久久久久久久久久 | 亚洲va韩国va欧美va| 中文字幕免费观看一区| 欧美成人在线直播| 欧美视频中文字幕| 99视频精品全部免费在线| 国产一区亚洲一区| 免费观看日韩电影| 亚洲午夜av在线| 最新成人av在线| 国产欧美一区二区在线观看| 日韩三级中文字幕| 欧美人与性动xxxx| 色综合久久天天| eeuss鲁片一区二区三区| 国产自产2019最新不卡| 蜜臀久久99精品久久久久宅男| 一个色综合网站| 亚洲男人的天堂在线aⅴ视频| 国产三级三级三级精品8ⅰ区| 欧美电影免费提供在线观看| 69堂亚洲精品首页| 欧美日韩久久一区| 欧美日韩一区不卡| 欧美日韩一区二区三区视频| 在线观看成人小视频| 欧美在线你懂得| 欧美色成人综合| 欧美剧情电影在线观看完整版免费励志电影| 色综合天天做天天爱|