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

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

?? chatclientpanel.java

?? Received chat message sent there is choice, as well as an increase of server features and color disp
?? JAVA
字號:
package net.yangzhe.chatSocket;
import java.awt.event.KeyEvent;
import java.io.IOException;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JButton;
import javax.swing.JScrollPane;
import javax.swing.JTextPane;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.event.*;
import javax.swing.text.*;
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
import java.util.*;
import java.io.*;
import java.net.*;

public class ChatClientPanel  extends JPanel{

	private JTextPane jTextArea = null;
	private JButton jButton = null;
	private JTextPane jTextArea1 = null;
	private JScrollPane jScrollPane = null;
	private JScrollPane jScrollPane1 = null;
	private JScrollPane jScrollPane3 = null;
	private Client client;
	private String show="";
	private JButton jButton1,jButton3 = null;
	private String nickname;
	private JList jList=null;
	private JLabel jLabel3=null;
    private static int index=0;
    SimpleAttributeSet attrset= new SimpleAttributeSet();
    Vector <String> userList= new Vector<String>();
    Document docs;
	/**
	 * This is the default constructor
	 * @param client2 
	 * @param c 
	 * @throws IOException 
	 * @throws UnknownHostException 
	 */
	public ChatClientPanel(Client clienta,String un) throws UnknownHostException, IOException {
		super();
		//JFrame f=new JFrame(nickname+" :聊天室");
		
		
		nickname=un;
		initialize();
		
		client =clienta;
		//client.sendNews("%0%0");//jump out of cycle 1 at server
		//client.sendNews(this.nickname);
		Thread t=new Thread(new Runnable(){
			public void run() {
				
				while(true){
					//System.out.println("abcd");
					try {
						show=client.getNews().replace("%8%8","\n");
						outText(show);
					} catch (Exception ex) {
						// TODO Auto-generated catch block
						//jTextArea1.setCaretPosition(index);
						//jTextArea1.("失去對服務器的連接。");
						outText("%2%2,"+now()+","+"以失去連接..\n");
					
					    ex.printStackTrace();
						//this.stop();
					    break;
						
					}
				}
				
			}
		});
		t.start();
		
		Thread t2=new Thread(new Runnable(){
			public void run() {
				
				while(true){
					//client.sendNews("%6%6");//refresh
					try {
						Thread.sleep(3000);
					} catch (InterruptedException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}
				
			}
		});
		t2.start();
		
		
	}
	
	public SimpleAttributeSet color(int i){
		SimpleAttributeSet attrset3=new SimpleAttributeSet();
		switch(i){
			case 1:StyleConstants.setForeground(attrset3,Color.blue);break;   //時間藍色
			case 2:StyleConstants.setForeground(attrset3,Color.yellow);break;          //成員黃色
			case -1:StyleConstants.setForeground(attrset3,Color.red);break;   //系統消息紅色
			default: 
		}
		return attrset3;
	}
	
	
	
	public String now() 
    {
        Date today = new Date();
        SimpleDateFormat formatter = new SimpleDateFormat("[ hh:mm:ss ]");
        String dateString=null;
        try 
        {
            dateString = formatter.format(today);
            return dateString;
        } catch (IllegalArgumentException iae) {
            //result.setForeground(Color.red);
           // result.setText("Error: " + iae.getMessage());
        }
		return dateString;
    }
	
	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	private void initialize() {
		this.setLayout(null);
		this.setSize(526, 470);
		//this.setName(nickname+":聊天室");
		jLabel3= new JLabel();
	    jLabel3.setBounds(new java.awt.Rectangle(430,17,56,47));
		jLabel3.setText("在線列表");
		this.add(jLabel3,null);
		this.add(getJButton(), null);
		this.add(getJScrollPane(), null);
		this.add(getJScrollPane1(), null);
		this.add(getJScrollPane3(),null);
		this.add(getJButton1(), null);
		this.add(getJButton3(),null);
		//this.show();
		//this.addWindowListener(new WindowAdapter(){
		//	public void windowClosing(WindowEvent e){
		//		System.exit(0);
		//	}
		//});
		
	}
	
	
	private JScrollPane getJScrollPane3() {
		if (jScrollPane3 == null) {
			jScrollPane3 = new JScrollPane();
			jScrollPane3.setBounds(new java.awt.Rectangle(425,60,75,150));
			jScrollPane3.setViewportView(getJList());
		}
		return jScrollPane3;
	}
	
	
	private JList getJList() {
		if (jList == null) {
			jList = new JList();
			jList.addListSelectionListener(new ListSelectionListener(){
									public void valueChanged(ListSelectionEvent e){
											//Vector <String> test=ChatServer.getUserList();
										    //jList.updateUI();
										//	
										//	if((index=jList.getSelectedValue())!=null)
										//	index=test[index1];
										//	      jButton3.setEnabled(true);
										//	else jButton3.setEnabled(false);
                                            
										}
									});
		}
		return jList;
	}


	/**
	 * This method initializes jTextArea	
	 * 	
	 * @return javax.swing.JTextArea	
	 */
	private JTextPane getJTextArea() {
		if (jTextArea == null) {
			jTextArea = new JTextPane();
			jTextArea.setText("");
			jTextArea.addKeyListener(new java.awt.event.KeyAdapter() {
				public void keyReleased(java.awt.event.KeyEvent e) {
					if(e.isControlDown()&&e.getKeyCode()==10)
						jButton.doClick();
					//System.out.println("keyTyped()"+(KeyEvent.VK_ENTER+KeyEvent.VK_CONTROL)+" "+e.getKeyLocation()); // TODO Auto-generated Event stub keyTyped()
				}
			});
		}
		return jTextArea;
	}

	/**
	 * This method initializes jButton	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButton() {
		if (jButton == null) {
			jButton = new JButton();
			jButton.setBounds(new java.awt.Rectangle(393,369,99,31));
			jButton.setText("發送消息");
			jButton.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
				
					String s = "%3%3,"+now()+", "+nickname+" ,"+"說:"+jTextArea.getText().replace("\r\n","%8%8")+"%8%8";
					if(s!=""||s!="\r\n")
						client.sendNews(s);
					 jTextArea.setText("");
					System.out.println(s+"kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk"); 
				    s=null;// TODO Auto-generated Event stub actionPerformed()
				}
			});
		}
		return jButton;
	}

	/**
	 * This method initializes jTextArea1	
	 * 	
	 * @return javax.swing.JTextArea	
	 */
	private JTextPane getJTextArea1() {
		if (jTextArea1 == null) {
			jTextArea1 = new JTextPane();
			jTextArea1.setText("");
			jTextArea1.setEditable(false);
		}
		return jTextArea1;
	}

	/**
	 * This method initializes jScrollPane	
	 * 	
	 * @return javax.swing.JScrollPane	
	 */
	private JScrollPane getJScrollPane() {
		if (jScrollPane == null) {
			jScrollPane = new JScrollPane();
			jScrollPane.setBounds(new java.awt.Rectangle(25,17,375,236));
			jScrollPane.setViewportView(getJTextArea1());
		}
		return jScrollPane;
	}

	/**
	 * This method initializes jScrollPane1	
	 * 	
	 * @return javax.swing.JScrollPane	
	 */
	private JScrollPane getJScrollPane1() {
		if (jScrollPane1 == null) {
			jScrollPane1 = new JScrollPane();
			jScrollPane1.setBounds(new java.awt.Rectangle(25,266,475,95));
			jScrollPane1.setViewportView(getJTextArea());
		}
		return jScrollPane1;
	}
	
	private JButton getJButton3(){
		if(jButton3==null){
			jButton3=new JButton();
			jButton3.setBounds(new java.awt.Rectangle(170,368,108,32));
			jButton3.setText("創建私聊");
			jButton3.setEnabled(false);
		}
		return jButton3;
	}
	/**
	 * This method initializes jButton1	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButton1() {
		if (jButton1 == null) {
			jButton1 = new JButton();
			jButton1.setBounds(new java.awt.Rectangle(42,368,108,32));
			jButton1.setText("我要離開了");
			jButton1.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					client.sendNews("%end");//跳出服務器第2循環
					/*try {
						if(client.getNews()!=null)
							System.exit(1);
					} catch (IOException e1) {
						// TODO Auto-generated catch block
						System.exit(0);
						//e1.printStackTrace();
					}*/
					System.exit(1);
					
					System.out.println("aactionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
				}
			});
		}
		return jButton1;
	}
	
	
	void outText(String a){                  //將String a輸出
		String[] info=a.split(",");
        if(info[0].equals("%1%1")){     //用戶列表
        	userList.clear();
        	for(int i=1;i<info.length;i++){
        		userList.add(info[i]);
        		System.out.println(info[i]);
        	}
        	jList.setListData(userList);
        }else if(info[0].equals("%2%2")){   //系統消息
        	docs=jTextArea1.getDocument();
			try{
			     docs.insertString(docs.getLength(),info[1],color(1));    //時間藍色
			     jTextArea1.setCaretPosition(docs.getLength());
			}catch(BadLocationException e){
				 e.printStackTrace();
			}
			String lm="";
			for(int i=2;i<info.length;i++){
				lm+=info[i];
				if(i<info.length-1){
					lm+=",";
				}
			}
			//info=lm.split("%8%8");
			//for(int i=0;i<info.length;i++){
				docs=jTextArea1.getDocument();
			    try{
			        docs.insertString(docs.getLength(),lm,color(-1));    //系統紅色
			        jTextArea1.setCaretPosition(docs.getLength());
			    }catch(BadLocationException e){
				    e.printStackTrace();
			    }
			//}
        }else if(info[0].equals("%3%3")){   //普通消息
        	docs=jTextArea1.getDocument();
			try{
			     docs.insertString(docs.getLength(),info[1],color(1));    //時間藍色
			     jTextArea1.setCaretPosition(docs.getLength());
			}catch(BadLocationException e){
				 e.printStackTrace();
			}
			docs=jTextArea1.getDocument();
			try{
			     docs.insertString(docs.getLength(),info[2],color(-1));    //名字紅色
			     jTextArea1.setCaretPosition(docs.getLength());
			}catch(BadLocationException e){
				 e.printStackTrace();
			}
			String lm="";
			for(int i=3;i<info.length;i++){
				lm+=info[i];
				if(i<info.length-1){
					lm+=",";
				}
			}
			//info=lm.split("%8%8");
			//for(int i=0;i<info.length;i++){
				docs=jTextArea1.getDocument();
			    try{
			        docs.insertString(docs.getLength(),lm,color(10));    //普通
			        jTextArea1.setCaretPosition(docs.getLength());
			    }catch(BadLocationException e){
				    e.printStackTrace();
			    }
			//}
        }
        	         
            
	}

	//public static void main(String[] args) throws Exception{
	//	Client cl = new Client(InetAddress.getByName("127.0.0.1"));
	//	ChatClientPanel cc =new ChatClientPanel("127.0.0.1","test");
	//	cc.show();
		//cc.show();
		//cc.setVisible(true);
		
	//}

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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲高清免费观看高清完整版在线观看 | 欧美三级在线视频| 99国产精品久| 99久久99久久精品国产片果冻| 成人蜜臀av电影| 成人性视频免费网站| 成人激情免费视频| 91日韩精品一区| 波多野结衣亚洲| 国产精品嫩草影院com| 国产日韩欧美在线一区| 欧美激情一区二区三区不卡 | 亚洲天堂久久久久久久| 日韩理论在线观看| 亚洲宅男天堂在线观看无病毒| 亚洲一区二区欧美激情| 亚洲国产乱码最新视频| 免费观看一级欧美片| 国内精品免费**视频| 盗摄精品av一区二区三区| www.在线欧美| 欧美色图天堂网| 欧美一区二区啪啪| 欧美精品一区二区三区高清aⅴ| 国产午夜精品一区二区三区嫩草| 国产女同互慰高潮91漫画| 亚洲另类中文字| 免费看精品久久片| 成人中文字幕在线| 日本乱码高清不卡字幕| 91精品国产一区二区| 久久亚洲综合av| 亚洲男人的天堂一区二区| 日韩vs国产vs欧美| 国产精品亚洲第一区在线暖暖韩国 | 视频一区二区中文字幕| 极品少妇xxxx精品少妇偷拍| 99久久99久久免费精品蜜臀| 9191国产精品| 国产欧美日韩三级| 亚洲福利一区二区| 国产在线播放一区| 欧美综合在线视频| 久久久久国产精品人| 亚洲免费伊人电影| 蜜臀久久久久久久| 成人av电影免费观看| 91精品中文字幕一区二区三区| 国产女主播视频一区二区| 五月天一区二区三区| 国产成人夜色高潮福利影视| 欧美日韩综合在线免费观看| 久久久噜噜噜久久人人看| 亚洲一区二区三区视频在线| 国产麻豆9l精品三级站| 欧美日韩aaaaaa| 国产精品久久久久四虎| 日韩电影在线观看电影| 99riav久久精品riav| 精品日本一线二线三线不卡| 亚洲综合成人网| 成人在线一区二区三区| 欧美成人伊人久久综合网| 一区二区三区在线免费观看| 国产精品18久久久久久久久久久久| 欧美视频一区二区三区| 国产精品婷婷午夜在线观看| 日本欧美在线看| 91麻豆高清视频| 国产欧美视频一区二区| 精品一区免费av| 欧美二区在线观看| 一区二区三区色| www.日韩在线| 久久久精品综合| 免费在线观看一区| 欧美日韩美女一区二区| 亚洲欧美日韩国产综合在线| 国产一区在线视频| 日韩免费看网站| 午夜精品久久久久久不卡8050| 97精品国产97久久久久久久久久久久| 2023国产精品自拍| 男女男精品视频网| 3d成人h动漫网站入口| 亚洲综合激情小说| 91视频精品在这里| 亚洲人成网站精品片在线观看| 国产成人免费视频网站| 欧美精品一区二区三区在线播放| 五月综合激情网| 欧美日韩的一区二区| 亚洲国产综合在线| 欧洲国内综合视频| 亚洲国产成人高清精品| 91精品办公室少妇高潮对白| 亚洲美女淫视频| 在线观看91精品国产入口| 国产精品第13页| 99re热视频精品| 亚洲女人****多毛耸耸8| 色哟哟日韩精品| 亚洲激情男女视频| 欧美日韩中字一区| 亚洲成人激情综合网| 欧美精品久久99久久在免费线| 午夜精品久久久久久不卡8050| 欧美剧情电影在线观看完整版免费励志电影 | 国产精品色噜噜| 成人国产在线观看| 亚洲欧美在线aaa| 日本精品一级二级| 亚洲一线二线三线久久久| 欧美日韩亚洲不卡| 秋霞电影网一区二区| 欧美电视剧免费观看| 国产乱一区二区| 国产精品久久久久久久第一福利| 91毛片在线观看| 午夜视频一区二区三区| 欧美一级理论片| 国产精品一区二区久激情瑜伽 | 麻豆精品一区二区综合av| 精品久久人人做人人爽| 国产a级毛片一区| 亚洲免费观看在线观看| 欧美日韩国产高清一区二区三区| 秋霞国产午夜精品免费视频| 久久欧美一区二区| 成人黄色网址在线观看| 亚洲成va人在线观看| 日韩精品专区在线影院重磅| 国产69精品久久777的优势| 亚洲欧美福利一区二区| 91精品国产综合久久久久久漫画| 激情六月婷婷综合| 亚洲欧美日韩中文播放 | 日韩av在线播放中文字幕| 精品国产免费一区二区三区香蕉| www.视频一区| 日韩在线一区二区| 国产女人aaa级久久久级| 欧美色视频一区| 国产麻豆视频一区二区| 亚洲自拍偷拍九九九| 久久综合九色综合欧美98 | 亚洲免费观看高清完整| 日韩一区二区三区在线视频| 成人爱爱电影网址| 日本欧美一区二区三区| 国产精品久久毛片av大全日韩| 欧美日韩电影在线| 成人一区二区三区在线观看| 天天av天天翘天天综合网| 欧美韩日一区二区三区四区| 欧美日韩一区二区电影| 国产99久久久国产精品潘金网站| 亚洲高清在线视频| 中文字幕乱码亚洲精品一区| 日韩一区二区三区视频在线观看| 91丨porny丨在线| 久久99国产精品久久99| 亚洲愉拍自拍另类高清精品| 国产无遮挡一区二区三区毛片日本| 欧美视频精品在线| 丁香婷婷综合激情五月色| 日精品一区二区| 亚洲欧洲精品一区二区精品久久久| 日韩欧美区一区二| 欧美日韩国产高清一区| av电影在线观看不卡| 国内精品免费在线观看| 日韩av高清在线观看| 亚洲蜜臀av乱码久久精品| 欧美韩国一区二区| 26uuu成人网一区二区三区| 欧美美女网站色| 91精品办公室少妇高潮对白| 成人精品视频一区二区三区尤物| 蜜桃视频在线观看一区| 午夜电影一区二区三区| 亚洲精品成人在线| 中文字幕乱码亚洲精品一区| 久久这里只有精品视频网| 欧美一区二区久久久| 欧美日韩在线三级| 91丝袜美女网| 97se亚洲国产综合自在线| 国产91综合一区在线观看| 国产一区激情在线| 麻豆精品新av中文字幕| 无码av免费一区二区三区试看 | 国产成人在线色| 国产剧情一区在线| 精品一区二区三区视频| 麻豆成人在线观看| 免费国产亚洲视频| 看电视剧不卡顿的网站| 久久国产综合精品| 极品少妇xxxx精品少妇偷拍|