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

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

?? lanchat.java

?? 瘋狂Java講義_源碼(含Java設計模式CHM
?? JAVA
字號:
import java.util.*;import java.awt.*;import java.net.*;import java.text.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;/** * Description: * <br/>Copyright (C), 2005-2008, Yeeku.H.Lee * <br/>This program is protected by copyright laws. * <br/>Program Name: * <br/>Date: * @author  Yeeku.H.Lee kongyeeku@163.com * @version  1.0 */public class LanChat extends JFrame{	private DefaultListModel listModel = new DefaultListModel();	//定義一個JList對象	private JList friendsList = new JList(listModel);	//定義一個用于格式化日期的格式器	private DateFormat formatter = DateFormat.getDateTimeInstance(); 	public LanChat()	{		super("局域網聊天");		//設置該JList使用ImageCellRenderer作為單元格繪制器		friendsList.setCellRenderer(new ImageCellRenderer()); 		listModel.addElement(new UserInfo("all" , "所有人" , null , -2000));		friendsList.addMouseListener(new ChangeMusicListener());		add(new JScrollPane(friendsList));		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);		setBounds(2, 2, 160 , 600);	}	//向用戶列表中添加用戶	public void addUser(UserInfo user)	{		listModel.addElement(user);	}	//從用戶列表中刪除用戶	public void removeUser(int pos)	{		listModel.removeElementAt(pos);	}	//根據地址來查詢用戶	public UserInfo getUserBySocketAddress(SocketAddress address)	{		for (int i = 1 ; i < getUserNum() ; i++)		{			UserInfo user = getUser(i);			if (user.getAddress() != null && 				user.getAddress().equals(address))			{				return user;			}		}		return null;	}	//—————————下面兩個方法是對ListModel的包裝—————————	//獲取該聊天窗口的用戶數量	public int getUserNum()	{		return listModel.size();	}	//獲取指定位置的用戶	public UserInfo getUser(int pos)	{		return (UserInfo)listModel.elementAt(pos);	}	//實現JList上的鼠標雙擊監聽器	class ChangeMusicListener extends MouseAdapter	{		public void mouseClicked(MouseEvent e)		{			//如果鼠標的擊鍵次數大于2			if (e.getClickCount() >= 2)			{				//取出鼠標雙擊時選中的列表項				UserInfo user = (UserInfo)friendsList.getSelectedValue();				//如果該列表項對應用戶的交談窗口為null				if (user.getChatFrame() == null)				{					//為該用戶創建一個交談窗口,并讓該用戶引用該窗口					user.setChatFrame(new ChatFrame(null , user));				}				//如果該用戶的窗口沒有顯示,則讓該用戶的窗口顯示出來				if (!user.getChatFrame().isShowing())				{					user.getChatFrame().setVisible(true);				}			}		}	}	/**	 * 處理網絡數據報,該方法將根據聊天信息得到聊天者,	 * 并將信息顯示在聊天對話框中。	 * @param packet 需要處理的數據報	 * @param single 該信息是否為私聊信息	 */	public void processMsg(DatagramPacket packet , boolean single)	{		//獲取該發送該數據報的SocketAddress		InetSocketAddress srcAddress = (InetSocketAddress)packet.getSocketAddress();		//如果是私聊信息,則該Packet獲取的是DatagramSocket的地址,將端口減1才是		//對應的MulticastSocket的地址		if (single)		{			srcAddress = new InetSocketAddress(srcAddress.getHostName(),				srcAddress.getPort() - 1);		}		UserInfo srcUser = getUserBySocketAddress(srcAddress);		if (srcUser != null)		{			//確定消息將要顯示到哪個用戶對應窗口上。			UserInfo alertUser = single ? srcUser : getUser(0);			//如果該用戶對應的窗口為空,顯示該窗口			if (alertUser.getChatFrame() == null)			{				alertUser.setChatFrame(new ChatFrame(null , alertUser));			}			//定義添加的提示信息			String tipMsg = single ? "對您說:" : "對大家說:";			//顯示提示信息			alertUser.getChatFrame().addString(srcUser.getName() + tipMsg				+ "......................(" + formatter.format(new Date()) + ")\n"				+ new String(packet.getData() , 0 , packet.getLength()) + "\n");			if (!alertUser.getChatFrame().isShowing())			{				alertUser.getChatFrame().setVisible(true);			}		}	}	//主方法,程序的入口	public static void main(String[] args) 	{		LanChat lc = new LanChat();		new LoginFrame(lc , "請輸入用戶名、頭像后登陸");	}}//定義用于改變JList列表項外觀的類class ImageCellRenderer extends JPanel implements ListCellRenderer{	private ImageIcon icon;	private String name;	//定義繪制單元格時的背景色	private Color background;	//定義繪制單元格時的前景色	private Color foreground;	public Component getListCellRendererComponent(JList list, Object value, int index, 	  boolean isSelected, boolean cellHasFocus)	{		UserInfo userInfo = (UserInfo)value;		icon = new ImageIcon("ico/" + userInfo.getIcon() + ".gif");		name = userInfo.getName();		background = isSelected ? list.getSelectionBackground() : list.getBackground();		foreground = isSelected ? list.getSelectionForeground() : list.getForeground();		//返回該JPanel對象作為單元格繪制器		return this;	}	//重寫paintComponent方法,改變JPanel的外觀	public void paintComponent(Graphics g)	{		int imageWidth = icon.getImage().getWidth(null);		int imageHeight = icon.getImage().getHeight(null);		g.setColor(background);		g.fillRect(0, 0, getWidth(), getHeight());		g.setColor(foreground);		//繪制好友圖標		g.drawImage(icon.getImage() , getWidth() / 2 - imageWidth / 2 , 10 , null);		g.setFont(new Font("SansSerif" , Font.BOLD , 18));		//繪制好友用戶名		g.drawString(name, getWidth() / 2 - name.length() * 10 , imageHeight + 30 );	}	//通過該方法來設置該ImageCellRenderer的最佳大小	public Dimension getPreferredSize()	{  		return new Dimension(60, 80);	}}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产高清精品在线| av不卡免费在线观看| 亚洲三级电影全部在线观看高清| 欧美日韩综合在线免费观看| 成人一区二区视频| 麻豆精品久久精品色综合| 亚洲天堂网中文字| 久久久久久久综合| 91麻豆精品国产91久久久使用方法 | 久久国产福利国产秒拍| 国产亚洲一本大道中文在线| 欧美乱妇23p| 91麻豆6部合集magnet| 国产大陆a不卡| 久久精品国产澳门| 午夜精品久久久久久| 亚洲男人的天堂在线aⅴ视频| 久久亚洲精品国产精品紫薇| 日韩女优av电影| 制服丝袜在线91| 欧美日韩一区高清| 色噜噜久久综合| 99精品久久免费看蜜臀剧情介绍| 国产精品一区二区久久不卡| 强制捆绑调教一区二区| 天天综合网天天综合色| 亚洲成人自拍网| 亚洲线精品一区二区三区八戒| 亚洲婷婷在线视频| 亚洲欧美韩国综合色| 国产精品日日摸夜夜摸av| 国产午夜亚洲精品午夜鲁丝片 | 欧美一区二区三区视频在线| 欧美性高清videossexo| 在线亚洲高清视频| 欧美伊人精品成人久久综合97 | 国产麻豆午夜三级精品| 精品一区二区三区在线观看国产 | 亚洲成人久久影院| 性做久久久久久久久| 视频一区视频二区中文| 午夜欧美电影在线观看| 日本网站在线观看一区二区三区 | 美女免费视频一区二区| 欧美a级一区二区| 久久精品99国产精品日本| 美国欧美日韩国产在线播放| 激情小说亚洲一区| 国产成人综合亚洲网站| www.欧美色图| 欧美在线播放高清精品| 欧美另类videos死尸| 欧美一级二级三级乱码| 精品99久久久久久| 亚洲国产成人一区二区三区| 亚洲色图在线看| 午夜精品久久久久久不卡8050| 久久精品噜噜噜成人88aⅴ| 国产精一区二区三区| 99久久精品免费看国产| 欧美亚洲国产一区二区三区va | 看电影不卡的网站| 成人永久aaa| 精品视频1区2区3区| 欧美一级理论性理论a| 99热99精品| 激情深爱一区二区| yourporn久久国产精品| 欧美色图激情小说| 精品不卡在线视频| 亚洲激情在线播放| 裸体健美xxxx欧美裸体表演| 成人高清在线视频| 欧美日韩国产电影| 久久久久久免费网| 亚洲午夜av在线| 国产成人亚洲综合a∨婷婷图片| 91视频一区二区三区| 日韩一区二区在线免费观看| 国产欧美日韩在线看| 亚洲综合av网| 国产盗摄一区二区| 欧美一区二区三区视频在线| 国产精品免费看片| 老司机精品视频在线| 91麻豆精品视频| 精品国产免费一区二区三区四区 | 五月天亚洲婷婷| 国产成人亚洲精品狼色在线| 欧美日韩在线播放三区| 亚洲国产成人一区二区三区| 日本视频在线一区| 色综合久久综合| 久久综合色综合88| 午夜久久久久久久久久一区二区| 国产盗摄视频一区二区三区| 91精品国产综合久久精品性色| 国产精品久久久久久久久快鸭| 日本v片在线高清不卡在线观看| 91啪九色porn原创视频在线观看| 日韩欧美不卡在线观看视频| 亚洲一区二区在线视频| 成人免费视频app| 日韩一区二区不卡| 亚洲成人动漫在线观看| 成人av午夜电影| 久久综合精品国产一区二区三区| 亚洲二区在线观看| 91蝌蚪国产九色| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 国模一区二区三区白浆| 欧美一区二区在线视频| 亚洲成人黄色小说| 欧美专区日韩专区| 亚洲视频综合在线| 成人污视频在线观看| 精品成人一区二区| 久久超级碰视频| 日韩精品一区二区三区四区| 日韩精品电影一区亚洲| 欧美性大战久久久久久久蜜臀| 亚洲男人电影天堂| 色综合欧美在线| 国产欧美日韩在线观看| 国产69精品一区二区亚洲孕妇| 中文字幕在线不卡一区二区三区 | 国产精品美女视频| 国产电影一区在线| 国产网红主播福利一区二区| 成人在线视频一区二区| 97精品久久久久中文字幕| 中文字幕精品—区二区四季| 国产一区二三区| 精品国产伦一区二区三区观看方式| 蜜桃视频第一区免费观看| 91精选在线观看| 日韩和的一区二区| 91精品国产综合久久福利软件| 日韩精品一二区| 日韩一区二区在线看| 久久国产免费看| 精品国产一区二区三区久久久蜜月| 久久精品国产99| 久久男人中文字幕资源站| 国产成人亚洲综合a∨婷婷| 欧美国产1区2区| 99国产精品久久久久久久久久 | 一本色道**综合亚洲精品蜜桃冫 | 国产成人在线视频网站| 国产欧美一区二区在线观看| www.爱久久.com| 亚洲免费毛片网站| 欧美肥胖老妇做爰| 精品在线播放午夜| 欧美国产精品中文字幕| 91美女在线看| 午夜久久久久久| 久久亚洲影视婷婷| 97久久精品人人做人人爽50路| 亚洲午夜久久久久久久久久久| 9191国产精品| 国产精品一级片在线观看| 1区2区3区欧美| 3751色影院一区二区三区| 精品综合久久久久久8888| 中文字幕在线观看一区| 欧美日韩中文国产| 韩国成人福利片在线播放| 综合久久久久久| 8v天堂国产在线一区二区| 国产乱码字幕精品高清av| 一区二区三区在线免费播放| 日韩美女视频一区二区在线观看| 高清不卡一二三区| 偷拍一区二区三区| 国产视频911| 精品视频在线看| 国产suv精品一区二区883| 亚洲在线中文字幕| 国产亚洲成av人在线观看导航 | 欧美日韩一区高清| 国产精品一区二区久久不卡| 一级女性全黄久久生活片免费| 日韩免费看的电影| 色婷婷综合久久久久中文一区二区| 麻豆国产一区二区| 亚洲自拍另类综合| 国产精品每日更新在线播放网址| 欧美电影在线免费观看| 丁香激情综合国产| 热久久久久久久| 亚洲综合色成人| 国产精品网友自拍| 精品国产99国产精品| 欧美亚洲综合一区| av资源网一区| 国产一区二区三区在线看麻豆| 亚洲成a人v欧美综合天堂| 国产精品不卡一区二区三区| 欧美va在线播放|