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

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

?? client.java

?? java版本的聊天程序
?? JAVA
字號:
package Chat;

import javax.swing.JFrame;
import java.awt.Dimension;
import javax.swing.JButton;
import javax.swing.JPanel;
import java.awt.Rectangle;
import java.awt.event.KeyEvent;

import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JTextArea;
import javax.swing.JScrollPane;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket; 
import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;

public class Client extends JFrame implements Runnable{

	private JPanel jPanel = null;
	private JLabel jSetServerLabel = null;
	private JTextField jServerAddressTextField = null;
	private JLabel jSetPortLabel = null;
	private JTextField jServerPortTextField = null;
	private JButton jConnectButton = null;
	private JButton jDisConnectButton = null;
	private JLabel jSendLabel = null;
	private JTextArea jSendTextArea = null;
	private JScrollPane jSendScrollPane = null;
	private JTextArea jReceivedTextArea=null;
	private JLabel jReceiveLabel = null;
	private JScrollPane jReceiveScrollPane = null;
	private JButton jSendButton = null;
	private JButton jClearButton = null;
	private JLabel jStateLabel = null;
	private JTextField jStateTextField = null;
	private Socket clientSock;
	private boolean conState=false;
	private PrintWriter out;
	private BufferedReader in=null;
	private Thread readThread;
	private boolean runState;
	/**
	 * @param args
	 */
	
	public Client(){
		super("通信系統客戶端");
		initialize();
		//Container con=getContentPane();		
		
		
	}
	
	
	
	/**
	 * This method initializes this
	 * 
	 */
	private void initialize() {
        this.setSize(new Dimension(451, 409));
        this.setContentPane(getJPanel());
        this.setTitle("通信系統客戶端");
        
        this.setLocation(200, 100);
		this.setVisible(true);
			
	}



	/**
	 * This method initializes jPanel	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	private JPanel getJPanel() {
		if (jPanel == null) {
			jStateLabel = new JLabel();
			jStateLabel.setBounds(new Rectangle(25, 106, 78, 32));
			jStateLabel.setText("系統狀態:");
			jReceiveLabel = new JLabel();
			jReceiveLabel.setBounds(new Rectangle(25, 236, 78, 24));
			jReceiveLabel.setText("信息記錄:");
			jSendLabel = new JLabel();
			jSendLabel.setBounds(new Rectangle(24, 146, 77, 23));
			jSendLabel.setText("發送信息:");
			jSetPortLabel = new JLabel();
			jSetPortLabel.setBounds(new Rectangle(22, 57, 126, 34));
			jSetPortLabel.setText("服務器端口號:");
			jSetServerLabel = new JLabel();
			jSetServerLabel.setBounds(new Rectangle(22, 14, 126, 34));
			jSetServerLabel.setText("服務器端IP地址:");
			jPanel = new JPanel();
			jPanel.setLayout(null);
			jPanel.add(jSetServerLabel, null);
			jPanel.add(getJServerAddressTextField(), null);
			jPanel.add(jSetPortLabel, null);
			jPanel.add(getJServerPortTextField(), null);
			jPanel.add(getJConnectButton(), null);
			jPanel.add(getJDisConnectButton(), null);
			jPanel.add(jSendLabel, null);
			jPanel.add(getJSendTextArea(), null);
			jPanel.add(getJSendScrollPane(), null);
			jPanel.add(jReceiveLabel, null);
			jPanel.add(getJReceivedTextArea(), null);
			jPanel.add(getJReceiveScrollPane(), null);
			jPanel.add(getJSendButton(), null);
			jPanel.add(getJClearButton(), null);
			jPanel.add(jStateLabel, null);
			jPanel.add(getJStateTextField(), null);
		}
		return jPanel;
	}



	/**
	 * This method initializes jServerAddressTextField	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getJServerAddressTextField() {
		if (jServerAddressTextField == null) {
			jServerAddressTextField = new JTextField();
			jServerAddressTextField.setBounds(new Rectangle(148, 14, 137, 37));
			jServerAddressTextField.setText("127.0.0.1");
		}
		return jServerAddressTextField;
	}



	/**
	 * This method initializes jServerPortTextField	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getJServerPortTextField() {
		if (jServerPortTextField == null) {
			jServerPortTextField = new JTextField();
			jServerPortTextField.setBounds(new Rectangle(148, 56, 137, 37));
			jServerPortTextField.setText("30000");
		}
		return jServerPortTextField;
	}



	/**
	 * This method initializes jConnectButton	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJConnectButton() {
		if (jConnectButton == null) {
			jConnectButton = new JButton();
			jConnectButton.setBounds(new Rectangle(315, 14, 100, 33));
			jConnectButton.setText("連接服務器");
			jConnectButton.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
				  if(conState==true){	
					  JOptionPane.showMessageDialog(jPanel,"清先斷開連接",
	    						"清先斷開連接",JOptionPane.ERROR_MESSAGE); 
				  }
				  else{
					
					  startConnect();
				  }
				}
			});
		}
		return jConnectButton;
	}



	/**
	 * This method initializes jDisConnectButton	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJDisConnectButton() {
		if (jDisConnectButton == null) {
			jDisConnectButton = new JButton();
			jDisConnectButton.setBounds(new Rectangle(315, 56, 100, 33));
			jDisConnectButton.setText("斷開連接");
			jDisConnectButton.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
				  if(conState==false){	
					  JOptionPane.showMessageDialog(jPanel,"還沒有建立連接",
	    						"還沒有建立連接",JOptionPane.ERROR_MESSAGE); 
				  }
				  else{
					try{
						out.println("Client exit!");
						out.flush();
						jReceivedTextArea.insert("\n", 0);
						jReceivedTextArea.insert("Client exit!", 0);
						//Thread.sleep(1000);   
						//disConnect();
						stopRun();
						
					}catch (Exception exception){
						jStateTextField.setText("無法斷開連接");
					}
					
				  }
				}
			});
		}
		return jDisConnectButton;
	}



	/**
	 * This method initializes jSendTextArea	
	 * 	
	 * @return javax.swing.JTextArea	
	 */
	private JTextArea getJSendTextArea() {
		if (jSendTextArea == null) {
			jSendTextArea = new JTextArea();
			//jSendTextArea.setBounds(new Rectangle(222, 208, 73, 43));
			/*
			jSendTextArea.addKeyListener(
				    new java.awt.event.KeyListener(){
				    	public void keyPressed(KeyEvent e){
				    		if(e.getKeyCode()==e.VK_ENTER){
				    			if(jSendTextArea.getText().equals("")){
				    				JOptionPane.showMessageDialog(jPanel,"輸入內容為空",
				    						"輸入內容為空",JOptionPane.ERROR_MESSAGE);
				    			}
				    			else if(conState==true){
									   sendInformation();
									   jSendTextArea.setText("");
								}
								else{
									   JOptionPane.showMessageDialog(jPanel,"還沒有連接客戶端",
						    						"還沒有連接客戶端",JOptionPane.ERROR_MESSAGE);
								}
				    		}
				    			
				    	}
				    	public void keyReleased(KeyEvent e){			    		
				    	}
				    	public void keyTyped(KeyEvent e){			    		
				    	}
				    	
				    }			
				);
				*/
		}
		return jSendTextArea;
	}


    private JTextArea getJReceivedTextArea(){
    	if (jReceivedTextArea == null) {
    		jReceivedTextArea = new JTextArea();
			//jSendTextArea.setBounds(new Rectangle(222, 208, 73, 43));
		}
		return jReceivedTextArea;
    }
	
	/**
	 * This method initializes jSendScrollPane	
	 * 	
	 * @return javax.swing.JScrollPane	
	 */
	private JScrollPane getJSendScrollPane() {
		if (jSendScrollPane == null) {
			jSendScrollPane = new JScrollPane(jSendTextArea);
			jSendScrollPane.setBounds(new Rectangle(23, 169, 279, 56));
		}
		return jSendScrollPane;
	}



	/**
	 * This method initializes jReceiveScrollPane	
	 * 	
	 * @return javax.swing.JScrollPane	
	 */
	private JScrollPane getJReceiveScrollPane() {
		if (jReceiveScrollPane == null) {
			jReceiveScrollPane = new JScrollPane(jReceivedTextArea);
			jReceiveScrollPane.setBounds(new Rectangle(24, 260, 397, 102));
		}
		return jReceiveScrollPane;
	}



	/**
	 * This method initializes jSendButton	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJSendButton() {
		if (jSendButton == null) {
			jSendButton = new JButton();
			jSendButton.setBounds(new Rectangle(318, 171, 75, 24));
			jSendButton.setText("發送");
			jSendButton.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					if(jSendTextArea.getText().equals("")){
	    				JOptionPane.showMessageDialog(jPanel,"輸入內容為空",
	    						"輸入內容為空",JOptionPane.ERROR_MESSAGE);
	    			}
	    			else if(conState==true){
						   sendInformation();
						   jSendTextArea.setText("");
						}
					else{
							 JOptionPane.showMessageDialog(jPanel,"還沒有連接服務器端",
			    						"還沒有連接服務器端",JOptionPane.ERROR_MESSAGE);
					}
						
					}
			});
		}
		return jSendButton;
	}



	/**
	 * This method initializes jClearButton	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJClearButton() {
		if (jClearButton == null) {
			jClearButton = new JButton();
			jClearButton.setBounds(new Rectangle(318, 200, 75, 24));
			jClearButton.setText("清空");
			jClearButton.addActionListener(
					new java.awt.event.ActionListener(){
						public void actionPerformed(java.awt.event.ActionEvent e){
							jReceivedTextArea.setText("");
						}
					}
			);
		}
		return jClearButton;
	}



	/**
	 * This method initializes jStateTextField	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getJStateTextField() {
		if (jStateTextField == null) {
			jStateTextField = new JTextField();
			jStateTextField.setBounds(new Rectangle(102, 107, 315, 31));
			jStateTextField.setText("準備就緒,等待連接");
			jStateTextField.setEditable(false);
		}
		return jStateTextField;
	}


	public void startConnect(){
		try{
			clientSock=new Socket(jServerAddressTextField.getText(),
					Integer.parseInt(jServerPortTextField.getText()) );
			jStateTextField.setText("連接服務器成功,服務器:"+jServerAddressTextField.getText());
			conState=true;
			in=new BufferedReader(new InputStreamReader(clientSock.getInputStream()));
			out=new PrintWriter(clientSock.getOutputStream());
			
		}catch (Exception exception){
	        // exception.printStackTrace();
	         jStateTextField.setText("連接未成功建立,請重新嘗試");
	         conState=false;
	         repaint();
		}
		//run();
			  
	  readThread=new Thread(this);
	  readThread.start(); 
	}

	public void run(){
		
		 String msg;
		 runState=true;
		  
		  while(runState){
		   try{
			   msg=in.readLine();
			  // System.out.println(msg);
			   if(msg.equals("Server exit!")){//server exit
				   processMsg(msg);
				   stopRun();//終止線程
			   }else if(msg!=null){
				   DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
				   String str =(df.format(new Date()));
				   processMsg("Server:   "+str+"\n"+msg);
			   }
			   Thread.sleep(500);    
		   }
		   catch(Exception e){
		   }
		  
		 }
		  
		  //System.out.println("11111111111");
		  //endConnect();
		 try{//服務器退出關閉連接和相關的"流"
			// System.out.println("11111111111");
			 jStateTextField.setText("斷開連接");
			 clientSock.close();
			 clientSock=null;
			 conState=false;
			 in.close();
			 out.close();			 
			
		 }
		 catch(IOException ioe){} 
	}
	
	public void processMsg(String msg){//客戶端處理消息
		//jReceivedTextArea.append(msg);
		//jReceivedTextArea.append("\n");
		jReceivedTextArea.insert("\n", 0);
		jReceivedTextArea.insert(msg, 0);
	}
	
	public void sendInformation(){
		  DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		   String str =(df.format(new Date()));
		  out.println(jSendTextArea.getText());
		  processMsg("clent:    "+str+"\n"+jSendTextArea.getText());
		  out.flush();
		  
	}
	
	public void stopRun(){//to stop the running thread
		  runState=false;
		  conState=false;
		//  disConnect();
	} 

	/*
	public void disConnect(){
		try{
			jStateTextField.setText("斷開連接");
			clientSock.close();
			clientSock=null;
			conState=false;
			
		}catch (Exception exception){
			jStateTextField.setText("無法斷開連接");
		}
		
	}
	*/
	
	public static void main(String[] args) {
		// TODO 自動生成方法存根
        Client client=new Client();
        client.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}

}  //  @jve:decl-index=0:visual-constraint="10,10"

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美调教femdomvk| 日本一区二区成人| 中文字幕精品一区| 亚洲成人一区二区在线观看| 国产一区视频在线看| 欧美亚洲禁片免费| 中文字幕av在线一区二区三区| 亚洲专区一二三| youjizz国产精品| 久久夜色精品一区| 图片区小说区国产精品视频| 99久久久无码国产精品| 久久久久久久久久久黄色| 日韩精品国产欧美| 日本乱人伦一区| 国产精品看片你懂得| 国产资源精品在线观看| 717成人午夜免费福利电影| 亚洲人吸女人奶水| 成人18视频在线播放| 亚洲精品一区二区三区四区高清| 亚洲一区二区综合| 日本黄色一区二区| 亚洲免费av观看| aa级大片欧美| 国产精品不卡一区二区三区| 国产风韵犹存在线视精品| 日韩欧美国产三级电影视频| 香港成人在线视频| 精品视频在线看| 亚洲综合男人的天堂| 色狠狠色狠狠综合| 亚洲午夜精品网| 欧美最新大片在线看| 亚洲午夜精品17c| 欧美系列日韩一区| 亚洲精品乱码久久久久久 | 日本欧美一区二区| 欧美日韩日日摸| 五月天视频一区| 欧美久久高跟鞋激| 蜜桃av一区二区在线观看| 日韩欧美成人午夜| 国产一区二区导航在线播放| 亚洲国产精品国自产拍av| 丁香亚洲综合激情啪啪综合| 国产精品成人免费精品自在线观看| 91在线看国产| 亚洲一区二区欧美激情| 69堂亚洲精品首页| 国产一区二区三区蝌蚪| 国产精品网站在线播放| 91免费观看国产| 五月综合激情婷婷六月色窝| 精品精品国产高清a毛片牛牛| 国产在线视频精品一区| 中文一区在线播放| 在线观看亚洲a| 久久99精品国产麻豆婷婷 | 成人一区在线观看| 亚洲女子a中天字幕| 欧美日韩黄色一区二区| 国产精品一品视频| 亚洲精品成人天堂一二三| 91精品在线免费观看| 国产成人午夜精品影院观看视频 | 亚洲地区一二三色| 精品国产免费人成在线观看| gogo大胆日本视频一区| 日韩精彩视频在线观看| 欧美精彩视频一区二区三区| 欧美伊人久久久久久久久影院 | 国产精品日产欧美久久久久| 欧美丝袜丝nylons| 国产在线国偷精品产拍免费yy| 玉足女爽爽91| 精品国产不卡一区二区三区| 色悠悠久久综合| 国产综合久久久久影院| 亚洲丶国产丶欧美一区二区三区| 久久一区二区视频| 欧美日韩午夜影院| 91网页版在线| 精品一区二区三区香蕉蜜桃 | 国内精品免费在线观看| 亚洲综合在线五月| 国产欧美综合在线| 91精品国产一区二区三区| av中文字幕在线不卡| 蜜臀av性久久久久av蜜臀妖精| 欧美国产精品久久| 日韩一区二区三区在线观看| 一本大道久久a久久综合| 国产尤物一区二区在线| 日本vs亚洲vs韩国一区三区二区 | 欧美日韩一区视频| 97se亚洲国产综合在线| 国产福利91精品| 久久精品国产亚洲aⅴ| 午夜精品久久久久久久99樱桃| 亚洲欧洲日产国码二区| 国产视频911| 日韩欧美中文字幕公布| 欧美亚洲动漫精品| 色噜噜狠狠色综合中国| 色猫猫国产区一区二在线视频| 丁香一区二区三区| 国产成人精品综合在线观看| 经典三级视频一区| 蜜桃视频在线一区| 美女看a上一区| 麻豆精品在线播放| 欧美a一区二区| 免播放器亚洲一区| 蜜桃一区二区三区四区| 另类人妖一区二区av| 美女视频黄久久| 久久9热精品视频| 老汉av免费一区二区三区| 日韩专区一卡二卡| 免费日韩伦理电影| 激情六月婷婷久久| 国产xxx精品视频大全| 成人一级片网址| 99在线精品一区二区三区| 91丝袜美腿高跟国产极品老师 | 天堂资源在线中文精品| 亚洲一区二区在线观看视频| 亚洲夂夂婷婷色拍ww47| 亚洲成人7777| 免费观看在线色综合| 国产真实乱子伦精品视频| 国产精品一区在线| 北岛玲一区二区三区四区| 色偷偷久久一区二区三区| 欧美无乱码久久久免费午夜一区 | 99久久99久久综合| av动漫一区二区| 一本久久精品一区二区| 欧美色综合久久| 欧美成人性战久久| 国产精品污污网站在线观看| 一区二区三区91| 三级亚洲高清视频| 国产一区欧美日韩| 91看片淫黄大片一级在线观看| 欧美中文字幕一区二区三区 | 精品一区二区免费在线观看| 国产乱理伦片在线观看夜一区| 成人成人成人在线视频| 欧美日韩国产中文| 日本一区二区免费在线 | jizz一区二区| 日韩欧美一区二区不卡| 最新中文字幕一区二区三区| 三级成人在线视频| 成人一区二区三区中文字幕| 在线电影国产精品| 国产精品国产a| 日韩精品视频网站| 91性感美女视频| 精品女同一区二区| 一区二区三区在线免费视频| 黄色日韩三级电影| 欧美日韩一区不卡| 国产日韩欧美麻豆| 日韩国产一二三区| 91色乱码一区二区三区| 精品盗摄一区二区三区| 亚洲自拍都市欧美小说| 成av人片一区二区| 精品三级av在线| 香蕉影视欧美成人| 一本大道久久精品懂色aⅴ| 国产欧美一区二区在线观看| 亚洲1区2区3区4区| 色久优优欧美色久优优| 中文字幕欧美日本乱码一线二线| 热久久国产精品| 欧美三级中文字| 亚洲免费电影在线| www.欧美亚洲| 欧美国产精品一区二区三区| 国产真实乱子伦精品视频| 欧美一级高清片在线观看| 一区二区三区美女| 99久久精品情趣| 国产精品少妇自拍| 国产精品资源网站| 久久综合色综合88| 激情综合网激情| 欧美xingq一区二区| 丝袜亚洲另类丝袜在线| 欧美日韩另类一区| 亚洲在线免费播放| 欧美性videosxxxxx| 亚洲香蕉伊在人在线观| 欧美撒尿777hd撒尿| 亚洲成人免费影院| 欧美裸体bbwbbwbbw|