qq变成人人
- 格式:doc
- 大小:27.00 KB
- 文档页数:2
超级恶搞你的好友超好玩你可以说:该用户发送的内容含恶意成份,请尽快查杀病毒,以免中毒。
- -先把那个感叹号添为自定义表情步骤:打开QQ聊天窗口任何一个好友聊天在最上面都会出现,交谈中请勿轻信汇款、中奖消息,勿轻易拨打陌生电话,前面有个感叹号图片右键添加QQ表情步骤:1.在聊天窗口上点那个A 也就是设置字体的。
2.点最边上的那个字体颜色。
3.点规定自定义颜色。
红:121 绿:130 蓝193 然后点确定4.设置为宋体,9号字。
然后用它输入恐吓文字,正式一点,百分之八十的人,都去杀毒了,呵呵。
永远不进别人QQ黑名单的方法。
大家知道,如果你的QQ好友不再认为你是“好友”,而将你拉入黑名单当中,则你发送的任何QQ消息都将不会响应到对方QQ,并且你在下次重新登录QQ时,对方的头像图标也将会在你的好友列表中消失。
理论上对方删不删你是对方的自由,而你同不同意对方删你则是你的自由。
如果你不愿对方删你,则你可以通过下面的方法迫使对方将你重新加对方为好友:。
首先从QQ 的“系统消息”记录中找到对方好友请求你通过身份验证的那则系统消息记录,然后双击,在接下来弹出的“系统消息”对话框中分别单击“通过验证”和“加为好友”按钮,则你的QQ 头像图标又会不知不觉地出现在对方好友列表中了。
怎么样?是不是挺绝的?对方说不定还正在纳闷呢!但是,如果你的系统消息没有保留,或者是你主动请求对方通过身份验证和对方设置允许任何人列为好友就找不到这条消息了。
但应该说明的是,做朋友就以友情为先,关系不好,加了也白加,聊什么也没劲。
- -,让你QQ号永远不被盗当你打QQ号的时候。
在前面加一个0.比如你的QQ是1191926415你就打01191926415不要怕登不上去。
绝对可以登的因为QQ没有0开头的所以怎样的木马都扫描不了的试试吧。
给QQ好友设置空白好友印象的小技巧--空白好友印象,看起来是个非常不实用的技术,但是他可以帮你清空某个QQ好友的好友印象,只要是你的号码足够多,你可以无限制的在他的好友印象里设置空白,空白多了,其他的好友印象就不存在了。
用了10年的QQ了,居然不知道QQ居然隐藏了这么多的功能和BUG!!2011腾讯QQ通用BUG和变态小秘密!1。
号码被盗后,如何恢复以前的好友名单:以前的号码假设为AA,申请一个新的QQ号码,假设BB号。
打开QQ目录,在以AA号码命名的文件夹中找到user.db文件,然后覆盖粘贴至BB号码所在的文件夹中(复制前先备份此文件);使用BB号码登陆,所有AA以前的好友都在好友列表里面了,但是显示离线状态,把好友拖至陌生人组(按住shift全选名单或者c trl+a),然后再在陌生人组里,把好友再拖进好友组中,退出,登陆后就会发现以前的好友又回来了.2.如何让QQ昵称和自动回复与众不同.在昵称和自动回复中添加QQ支持的表情图标快捷键即可打造个性昵称和回复消息.如加入太阳的表情图标,即可写入\"/ty\",这些表情图标所对应的快捷键可单击QQ聊天窗口的表情下框,在每个图标上用鼠标停留一会即可显示对应的快捷键文字.3.强制聊天如出于特殊原因,必须向一个非好友的QQ用户发送消息时,可用一段强制聊天代码实现,在浏览器中输入以下这段代码:HTTP:///MSGRD?V=1&UI N=******&SITE=IOSHENMUE&MENU=YES,随后将代码中的星号换成需联系用户的Q Q号码并在浏览器中打开该地址即可.这样无论对方是否为QQ好友,均可直接发送消息.执行上述操作时最好开一个QQ号.如果开两个以上的QQ,则会出现对话框让用户选择使用QQ号码与对方聊天.4.隐藏摄像头.如果安了摄象头又不想让系统自动出现,可以隐藏摄象头,进入\"个人设置-系统设置-本地安全\"选项卡,在\"状态显示\"中,勾选\"不要将我列在在线视频用户的列表中\"一项即可.同样,勾\"游戏状态不可见\"和\"聊天室状态不可见\"两项,就可隐藏自己的游戏和聊天室里的活动行踪.5.禁止上线自动提示.单击QQ面板的\"菜单\"的\"个人设置\"子菜单的\"系统设置\",单击\"基本设置\",将状态显示栏中的\"禁止所有用户上线提示\",点击确定即可.6.从对方好友名单中消失.如果要将自己从对方的好友名单中消失,但又需要对方保留在自己的好友名单中,要求对方删除自己的想法绝对不妥,但可借助QQ商务版本TM来实现神秘\"蒸发\",直接用TM登陆,在好友列表中找到对方,在其头像上单击右键,选择\"将自己从对方联系人名单中删除\",最后在随后出现的警告对话框中进行确定即可,再登陆QQ,就行了.7.揪出隐身好友.隐身是QQ一项独特功能,虽然灰暗的图标免受了不少打拢,可用户仍有几种方法可找出隐身好友,下面只介绍一种:发送一个语音视频聊天请求,或发送某个文件给好友,如对方确实在线的话,会有以下几种处理方式,A:\"接收\"或\"拒绝\ ".此时窗口中会弹出相应的提示,即可确定对方处于隐身状态.B:直接关闭.对方即不接受也不拒绝,而直接将弹出窗口关闭,那么窗口同样会有对方拒绝的提示,同样可确定对方隐身.C:最小化弹出窗口,此时窗口无任何提示,无法确定对方隐身状态,但该方式下,对方的QQ会一直开着邀请窗口并占用资源.D:直接下线.对方不关闭弹出窗口而直接下线,此后再关闭弹出窗口,由于已下线,因此任何举动不会被传送,随后再隐身上线即可,这是对付试探隐身的最好办法8.自动找出不聊天好友目前的QQ版本允许添加500个好友,当人满为患的时候即需删除一些好友,而删除的衡量标准往往是添加后几乎没有聊天的好友,其实使用一个简单的批处理命令即可迅速查出哪些好友没有聊天,随后可将其逐个删除.首先将QQ的聊天记录导出为myinfo.txt文件,随后编写一个批处理文件,内容如下 :findstr\"消息对象为:\"myinfo.txt>myfr.txt 然后将该批处理文件和myinfo.txt在同一目录中,运行该批处理文件.此生会生成一个myfr.txt文件,文件中包含所有聊天的好友列表,随后只需通过查找方式来对照列表,将没有聊天的好友删除即可.9,在QQ中看网络电视.这属于QQ的隐藏功能,登陆QQ(2005beta3),单击QQ侧边栏的“用户自定义面板”。
一、登录框部分:1. 2011横竖登陆框修改:删除Default\LoginPanel minilogin_png_bkg.gft进入Res\AppFramework\LoginPanel 删除safeminilogin_png_bkg.png safeminilogin_png_bkg2.png修改图片\Res\LoginPanel mini_defaultbanner2.gft 大小335*221竖直登陆修改Default\LoginPanel stdlogin_png_bkg.gft 大小自己确定(看自己的要求)2. 登录框按钮的修改:(不想修改的话可以删除)在\Themes\文件夹里Default.rdb里,解包Default.rdb在Default\AppFramework\Button里1. 设置按钮:---------------btn_focus.png--------------- btn_down.png---------------btn_highlight.png---------------btn_normal.png2. 登录按钮Res\AppFramework\LoginPanel\SafeButton\ComboButton 里面的gft文件全部透明即可,那个小箭头更具自己需要修改3.登录框细节修改:修改文件夹:1.Res\AppFramework\LoginPanel1.帐号密码输入框修改:小键盘图标:keyboard.png 大小20*20竖直登录框细节注册新账号newid.png 20*20找回密码password.png 20*20设置netsetting.png 20*202、帐号密码输入框外观蓝色背景Default\AppFramework\FrameBorderframeBorderEffect_normalDraw.gft4、登录框的字体修改\QQ2011\I18N\2052 PreLoadStringBundle.xml右键记事本打开简单的就不写了有眼睛的估计都能看见登录框2011 的修改:登录框的2011和主面板的2011一样<String id="LoginPanel_Password">密码:</String><String id="Product_Name" fmt="true">$__PNAME_V_SV$</String><String id="MainFrame_Title" fmt="true">金鸡百花奖最佳男配角丶这里是我改了的</String><String id="LoginPanel_SoftKeyboard">打开软键盘</String>安全登录:在最下面就能看到<String id="SCANVUL_GIVEUP_PROMPT">您确定要放弃修复高危系统漏洞吗?警告:高危系统漏洞会导致系统存在安全风险!</String><String id="IDS_SafeLogin">安全登陆</String>二、.过度框的修改过度框的修改‘:过度框文件图片存放在X:\Program Files\Tencent\QQ2011\Misc\LoginPanel 里面(具体看你自己怎么安装的)1.过渡框的皮肤:图片名LoginPanel_window_windowBkg.png 大小尺寸是234X566改好保存格式为pn2.过渡框左上角QQ2010图片:图片名Main_Title.png 大小尺寸是151*43 格式为png3.过度框动画:X:\ProgramFiles\Tencent\QQ2011\Misc\LoginPanel\LogoFile\2052 图片名Logining和Logining_Vip 需要的话找个格式为Gif的图片替换就行了不需要就删了就行4.过度框的取消按钮:图片名login_btn_focus.png 和login_btn_highlight.pnglogin_btn_normal.png 和login_btn_down.png 大小尺寸是74*27 格式为png 或者86*305.过度框右上角的按钮:最小化按钮:-------------- btn_mini_down.png--------------btn_mini_highlight.png--------------btn_mini_normal.png最大化按钮:--------------btn_max_down.png--------------btn_max_highlight.png--------------btn_max_normal.png关闭按钮:--------------btn_close_disable.png--------------btn_close_down.png--------------btn_close_highlight.png--------------btn_close_normal.png-三、聊天框部分Res目录下:(可删除)ChatFrame--聊天窗口各背景图片,包括顶部按钮图标,聊天扩展(表情,震动,涂鸦,截图等)图标,等各类图片1、聊天框背景输入框aio_meg_in.gft--聊天输入框背景(透明化由这里设置)输出框aio_meg_out.gft--聊天输出框背景(透明化由这里设置)聊天框中部背景aio_quickbar_bkg.gft--聊天快捷栏背景(透明化由这里设置)聊天框底部背景:Res\SkinMgr aio_png_bkg.gft2、修改QQ秀背景QQ秀背景路径Res\ChatFrameaio_QQshow_bkg.gftQQ秀背景边框aio_qqshowlight_bkg.gftaio_QQshowcut_bkg.gft-3、聊天窗口按钮修改:在文件夹Res\ChatFrame里发送按钮:aiobtn_down.gft——QQ聊天窗口发送按钮按下颜色aiobtn_highlight.gft——QQ聊天窗口发送按钮滑过颜色aiobtn_fouce.gft--------按下放弃颜色aiobtn_normal.gft——QQ聊天窗口发送按钮默认颜色发送旁边的小箭头aiobtn_right_down.gftaiobtn_right_fouce.gftaiobtn_right_highlight.gftaiobtn_right_normal.gft关闭按钮Default\AppFramework\Buttonbtn_down.gftbtn_focus.gftbtn_normal.gftbtn_highlight.gft此处完美承接1楼4、群聊天窗口Res\ChatFrame\Group群聊天窗口群成员+ 群动态图片导航条+扩展条修改+群成员搜素都在里面了看着修改Res\ ChatFrame\Group图片名:All_ChatFrame_GroupMemButton_normalBackground格式BMP 大小:174*20图片名:ChatFrame_GroupDownDockPanel_background格式BMP 大小:178*30群成员搜索图标: group_seach.png群皇冠图标:GroupDyncIcon.png群聊天框群成员的白膜去除-------------------------------------路径Res\InformationBox删除MainPanel_ContactHeadNormal_paddingDraw.gft删除MainPanel_ContactHeadSelect_paddingDraw.gft删除MsgBoxQuickBarBkg.gft5、聊天窗口QQ秀隐藏按钮:aio_flexleft_normal.pngaio_flexright_normal.png6、QQ表情管理背景res/SkinMgr/all_inside03_bkg.gft-------------------------------------------------------------------------------------------------------------------------四、主面板部分Res\SkinMgr1、主面板的背景图路径:Res\SkinMgr main_png_bkg_normal.gft 想透明的删除即可但是主面板的皮肤和聊天框皮肤会一致想要不一样的话做一张图大小333*602 (或者自己看看自己的主面板多大)替换main_png_bkg.png 即可2、应用盒子背景修改Res\SkinMgrmain_png_bkg_normal.gft 这张图片同样是应用盒子的背景图main_png_bkg_edit.gft 这个图片是点下设置的背景删除即可想要背景不一样就自己替换图片方法同上以上三张图片全部透明或者替换自己喜欢的皮肤即可3、搜素栏的背景目录:Default\MainPanel\search删除图片main_search_bkg.gft4、好友、群、微薄、最近联系人的横条透明:删除图片名:main_tab_bkg.gft (横条整体的透明)删除图片名:main_tab_highlight .gft (鼠标掠过的透明)删除图片名:main_tab_check.gft (鼠标按下的透明)删除图片名:main_tabbtn_down.gft删除main_tabbtn_check.png删除图片名:main_tabbtn_highlight.gft5、好友、群、最近联系人、微薄、图标修改(可删除变为全透明)目录:Default\MainPanel图片名:icon_contacts_normal.png图片名:icon_contacts_selected.png图片名:icon_group_normal.png图片名:icon_group_selected.png图片名:icon_last_normal.png图片名:icon_last_selected.png目录:Plugin\Com.Tencent.WBlog\Bundle\Res\WBlog图片名:WBlog_TabBtn_Focus图片名:WBlog_TabBtn_Normal图片名:WBlog_TabBtn_Normal_Msg.png6、消息盒子修改1. 消息盒子的皮肤\Res\SkinMgr all_inside04_bkg.gft 大小尺寸:750*4962、消息盒子白膜去除Themes\Default\AppFramework\Common删除list_bkg_border.gft删除listitem_check.gft删除list_bkg.gft删除Res\InformationBoxMsgBoxQuickBarBkg.gft 这个图片是上面的白条最近请求的白膜:Res\InformationBox删除main_tab_check_bkg.gft删除main_tab_highlight_bkg.gft7、更改外观背景Res\SkinMgr\SkinMiniPortal main_bg.gft更改外观上面的东西都在这里了图表上面那个蓝色背景:Res\SkinMgr\SkinMiniPortal\TabCtrl main_tab_bg.png8、迷你资料卡①、迷你资料卡皮肤(这个目前还没有解决)Res\appframework\contacttips tips_white_bkg.gft 尺寸:290*409②迷你资料卡上面的QQ空间游戏人生等的横条背景(包括群资料卡)Res\ContactTipsbuddytips_titil_close.gftbuddytips_titil_mouseover.gftbuddytips_titil_open.gft③迷你资料卡上面的QQ空间游戏人生等后面的上下小箭头(包括群资料卡)Res\ContactTipsbuddytips_arrow_down.gftbuddytips_arrow_up.gft④隐藏图标的禁止图标:\Res\ContactInfoFrame 图片名:VASFlagMask⑤QQ活跃天数:Res\ContactTipstime1.pngtime2.png⑥会员加速:Res\AppFramework\Vip vip_head.png⑦QQ等级图标:Res\ConfigCenter里的grade.png9、QQ状态栏和主菜单部分状态栏:Default\AppFramework\Menu 图片名:menu_bkg.gft大小:170*260QQ状态选择背景Default\AppFramework\Menu menu_highlight.gft主菜单背景:Res\MainMenu 图片名:menu_topright_bkg.gft 大小:147*288主菜单图标:Default\MainPanel\MainMenuButton一共2个文件我就不写了10、修改QQ主面板分组前面小箭头的方法:路径Default\MainPanel未动状态--------------MainPanel_FolderNode_collapseTexture.png按下状态--------------MainPanel_FolderNode_expandTextureHighlight.png我的好友状态---------MainPanel_FolderNode_collapseTextureHighlight.png划过状态--------------MainPanel_FolderNode_expandTexture.png格式PNG 大小尺寸:12*1211、隐藏QQ分组数字+彩色分组修改方法位置Default\MainPanel修改文件(关键是大小330*15 相当于覆盖掉了数字建议和QQ分组前面的小箭头一起修改)MainPanel_FolderNode_collapseTexture.pngMainPanel_FolderNode_collapseTextureHighlight.pngMainPanel_FolderNode_expandTexture.pngMainPanel_FolderNode_expandTextureHighlight.png回复引用12、QQ分组鼠标滑过颜色--Default\MainPanelmain_group_down.pngmain_group_normal.pngmain_group_highlight.gft13、主面板微博导航栏透明修改文件ps:关于微博的修改都在微博里文件夹里腾讯全部归类的因为微博是后来加的功能-----------------------------------------------------------------------------------------------------路径QQ\Plugin\Com.Tencent.WBlog\Bundle\Res\WBlogitem_default_bkg.gft --默认皮肤白膜删除可透明timeline_input_highlight.pngEmbeded_input_bkg.gft --来你想说什么一栏删除可透明Embeded_input_normal.gft 同上删除微博导航条修改QQ\Plugin\Com.Tencent.WBlog\Bundle\Res\WBlog\banner删除或者修改banner_bkg.gft----未动皮肤banner_cutline.gft--中间的竖条Plugin\Com.Tencent.WBlog\Bundle\Res\WBlog\manualupdate删除或者修改bannerhighligtbkg.png----鼠标划过皮肤打开微博的刷新提示框QQ\Plugin\Com.Tencent.WBlog\Bundle\Res\WBlog\manualupdate 删除或者修改tips.gft14、主面板群显示导航修改(Q群+讨论组+蓝条) 大小参考QQ2010路径Res\MainPanel\GroupMainFrame 全在里面了修改QQ群讨论组默认浅色图片switchbtn_highlight.gftQQ群讨论组默认深蓝色图片switchbtn_pushed.gft透明即可或者修改修改btn_down.gftbtn_highlight.gft2个按下选中背景颜色,透明即可修改background.gft蓝条透明透明即可-----------------------------------------------------------------------------------15、去QQ面板头像边框颜色:目录:Default\AppFramework 删除文件夹HeadCtrl即可16、主面板上面的最小化,最大化,关闭按钮Default\AppFramework\SysButton 这个文件夹全部是修改为自己喜欢的即可------------------------------------------------------------------------------------------------------------------------五、系统设置部分1、系统设置皮肤+查找好友皮肤+登录框设置皮肤Res\SkinMgrall_inside_bkg.gft 都用的这一个背景图(528*348)修改即可(建议)删除也行:但是他的背景将会是QQ的内置皮肤背景或者是你自己修改的背景,前提是你有自己修改其他皮肤2、系统设置左边切换栏横条修改(尺寸保持不变)在\Res\AppFramework\Common文件夹里:按下选择后--stope_tabbtn_down.gft按下放弃-- stope_tabbtn_fouce.png鼠标掠过--stope_tabbtn_highlight.gft未动常显--stope_tabbtn_normal.gft3、系统设置左边切换栏下边的选项颜色Res\AppFramework\ConfigCenter未动颜色menu_highlight.gft 120*22修改或者删除按下颜色menu_down.gft 10*22修改或者删除---------------------------------------------------------------------------------------------------------------------六、其他部分1. 聊天框滚动条和主面板滚动条的透明:目录:Default\AppFramework\ScrollBar把里面的全部透明化就行了-------------------------------------------------------------------------------------------------------------------------2. QQ系统托盘动画和状态图标:1.托盘动画:在Res\Status\QQ\login,着重修改32文件夹里的16*16的所有图标!2.状态图标:在Res\Status\QQ\Ico,着重修改32文件夹里的16*16的所有图标!------------------------------------------------------------------------------------------------------------------------3. 去除查找框和消息框的白条:位置:Default\AppFramework\TabCtrl我们把TabCtrlT文件夹删除就透明了查找框小横条:删除目录:Res里的All_cutline_background.gft4.群成员选择背景Default\AppFramework\Menumune_select_bkg.bmp---------------------------------------------------------------------------------------------------------------------5.主菜单及二级菜单的修改主菜单修改Res\MainMenu\menu_topright_bkg.gft文件,二级菜单修改Default\AppFramework\Menu下的menu_bkg.gft文件-------------------------------------------------------------------------------------------------------------------------6、修改系统弹出框背景修改或者删除Default/AppFramework/TipWindow/tips_png_bkg.gft30*130。
OICQ 99a:发布中文网络寻呼机、公共聊天室、传输文件
OICQ 99b:发布语音聊天的功能
OICQ 2000:发布T encent Explorer、隐身功能、移动OICQ
同年2000:正式改名为QQ、发布视频聊天功能、QQ群、QQshow
QQ 2003:聊天场景、捕捉屏幕、给好友播放录影、QQ炫铃
QQ 2004:新增个人网络硬盘、远程协助、QQ小秘书
QQ 2005:新增QQ宠物、Qzone、QQ通讯录、QQ音乐
QQ 2006:新增QQ主题包、QQ视频秀、3D秀聊天模式
QQ 2007:新增会员发送离线文件功能、窗口抖动
QQ 2008:新增了超级群,最高支持500人
QQ 2009:全新体验:群友动态、消息盒子、好友印象
QQ 2010:全新皮肤引擎,QQ大视频,多问题验证
QQ 2011:新增皮肤编辑器、QQ应用盒子、QQ短信、炫彩字体、自定义标签
QQ2012大家都在用不用说拉......
2013已经解密。
]1QQ消息不显示时间就是把你电脑上的时间,调到2038年以后,就可以了2查看QQ上对方是否把你加为好友方法首先来到QQ秀商城里随便点一件物品,输入你想验证的QQ号码,点他人支付.错误:对不起,您必须是10001的好友,才能向他索要QQShow商品一切都明了。
3普通QQ号克隆好友!!!首先只要我们先将自己原来的号和新号登陆一遍,然后在QQ目录以旧号命名的文件夹里找到user.db数据库文件,复制.再到新号的文件夹里粘贴覆盖原文件.然后再登陆新号,你会发现哇~~好友都在了,不过都是永远不上线的,呵呵.没关系,接下来就是我们最关键的一步了,打开好友管理器(别跟我说不知道在哪里哦)在好友列表里选中自己想要加的人,记住哦,要按着ctrl来选啊,选好了,把刚才选中的好友全拉到陌生人一栏里,有人要问我,怎么要删掉啊,先别急,慢慢来,在跳出的对话框里都选确定啊,这样保证才能删掉,然后到陌生人一栏里,像刚才一样选中你的好友,^_^我拉,拉到好友列表里,哈哈这回要跳出好多要求好友确认的对话框,大功告成!!~~~慢慢点吧,虽然有点麻烦,可这是最简单的哦4QQ字横写方法很简单:大家可以看到选择字体框,你可以把鼠标放到上面,然后在最前边加上一个"@"的符号,这样再发出的字体就是横放的了。
是不是很酷啊,那么你还等什么,赶快试试吧^o^!(这里注意一点的是这个方法只对汉字有效,对英文和特殊字符没有作用。
)5QQ绕过身份验证直接加为好友!金山游侠是一款功能强大的游戏修改软件,它提供了强悍的数据修改功能,可以对内存进行修改,且它查找速度太快,又是从画面中直接弹出,一点不浪费感情。
是居家旅行行军打仗泡妞养宠必备利器............广告打到这为止。
我们知道,用游戏修改器可以对游戏中的数值进行修改,可以让你攻击力99999金钱无数,那我们能不能对qq中的qq号码进行修改,(因为qq号码也是数值的)将一个比较不常联系的qq号码修改为我们想要加却加不进去的美女......兄弟qq号码呢?答案是可以的,因为qq也是在内存中运行的(废话......)同样的,qq号码之类的数值也是在内存中,我们可以通过金山游侠对数据进行修改,将内存中的不需要的号码改为我们想要的美女......兄弟号码......好的,实验原理讲到这里,现在进行操作!灯光!摄影!音乐!首先开启qq,找到一个比较不常用联系用的号码,我们要把他改为我们所需要的号码。
这是一个简单的javaProject项目,没有涉及到数据库界面对这个项目中完成的功能进行阐述:1、qq用户登录:用户账号为1、2、3一直到50,密码都为123456,由于没有涉及到数据库,所以只是简单的在服务器进行验证。
2、实现1对1之间的聊天,实现1对多之间的聊天。
3、实现用户上线显示功能具体的演示为:1、启动服务器QqServer下com.qq.view.MyServerFrame,在该类下面启动服务器2、启动客户端QqClient下com.qq.view.QqClientLogin,在该类下面输入账号和密码登入ps:聊天时要把要把需要聊天的窗口都打开,才能看到。
比如1和2聊天,必须打开1对2聊天的窗口和2对1聊天的窗口QQ客户端:QQ服务器下面的是关于各个包的源代码,小伙伴们可以新建一个class,然后把这些拷贝上去就可以用了,当然前提是按照上面的工程创建好包Image文件夹下用到的图片:命名为:beibu.gif命名为:xiangdao.png命名为:quxiao.png命名为:qq.png命名为:mm.png命名为:clear.png命名为:dengru.pngQqClientConService类:package com.qq.client.model;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import .Socket;import com.qq.client.tools.ClientConServerThread;import com.qq.client.tools.ManageClientConServerThread; import mon.Message;import er;/*** 客户端连接服务器后台* */public class QqClientConService {public Socket client;//判断是否成功登录,成功返回true,否则返回falsepublic boolean sendLoginInfoToServer(Object o) {boolean isLogin = false;try {//创建连接client = new Socket("localhost", 9999);ObjectOutputStream oos = newObjectOutputStream(client.getOutputStream());oos.writeObject(o);ObjectInputStream ois = newObjectInputStream(client.getInputStream());Message message = (Message)ois.readObject();//登录成功的判断if(message.getMesType()==1) {isLogin = true;//登录成功,创建一个改客户端和服务器的线程ClientConServerThread ccst = new ClientConServerThread(client);//把改线程添加到管理线程的map中ManageClientConServerThread.addClientConServerThread(((User )o).getName(), ccst);//启动该线程new Thread(ccst).start();}} catch (Exception e) {e.printStackTrace();}return isLogin;}}QqClientUser类:package com.qq.client.model;import er;/*** 这是QQ客户端,发送用户名和密码** */public class QqClientUser {//调用客户端连接服务器后台的方法,返回true为成功登录,false为登入失败public boolean checkUser(User user) {return newQqClientConService().sendLoginInfoToServer(user);}}ClientConServerThread类:package com.qq.client.tools;import java.io.ObjectInputStream;import .Socket;import com.qq.client.view.QqChar;import com.qq.client.view.QqFriendList;import mon.Message;import mon.MessageType;/*** 这是客户端和服务器保持通讯的线程* */public class ClientConServerThread implements Runnable{ public Socket client;public ClientConServerThread(Socket client) {this.client = client;}@Overridepublic void run() {//不停的读取从服务器发来的消息while(true) {try {ObjectInputStream ois = newObjectInputStream(client.getInputStream());Message message = (Message) ois.readObject();//判断发来的消息包是否为普通消息包,或者是返回在线好友的包if(message.getMesType() ==MessageType.message_common_mes) {//把从服务器发来的消息显示在聊天界面:1.从管理聊天窗口的类中取得该窗口 2.调用显示方法.QqChar qqChar =ManageQqChar.getQqChar(message.getGetter()+""+message.getSender());qqChar.showMessage(message);} else if(message.getMesType() == MessageType.message_ret_onLineFriend) {String getter = message.getGetter();//修改响应的好友列表QqFriendList qqFriendList = ManageQqFriendList.getQqFriendList(getter);//更新在线好友if(qqFriendList != null) {qqFriendList.updateFriend(message);}}} catch (Exception e) {e.printStackTrace();}}}}ManageClientConServerThread类:package com.qq.client.tools;import java.util.HashMap;import java.util.Map;/*** 这是一个管理客户端和服务器保持通讯的线程类* */public class ManageClientConServerThread {public static Map map = new HashMap<String, ClientConServerThread>();//把线程添加到map中public static void addClientConServerThread(String userName, ClientConServerThread ccst) {map.put(userName, ccst);}//根据用户名取得该线程public static ClientConServerThread getClientConServerThread(String userName) {return (ClientConServerThread)map.get(userName);}}ManageQqChar类:package com.qq.client.tools;import java.util.HashMap;import java.util.Map;import com.qq.client.view.QqChar;/*** 这是一个管理用户聊天界面的类* */public class ManageQqChar {public static Map map = new HashMap<String, QqChar>();//把用户聊天界面Qqchar添加到map中public static void addQqChar(String loginAndFriend, QqChar qqchar) {map.put(loginAndFriend, qqchar);}//根据登入用户和发送用户取得该聊天界面public static QqChar getQqChar(String loginAndFriend) { return (QqChar)map.get(loginAndFriend);}}ManageQqFriendList类:package com.qq.client.tools;import java.util.HashMap;import java.util.Map;import com.qq.client.view.QqFriendList;/*** 管理好友、黑名单..界面类* */public class ManageQqFriendList {public static Map map = new HashMap<String, QqFriendList>();//把用用户列表类添加到map中public static void addQqFriendList(String userName, QqFriendList list) {map.put(userName, list);}//根据登录用户取得该用户列表类public static QqFriendList getQqFriendList(String userName) { return (QqFriendList)map.get(userName);}}QqChar类:package com.qq.client.view;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.ObjectOutputStream;import java.util.Date;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JTextArea;import javax.swing.JTextField;import com.qq.client.tools.ManageClientConServerThread;import mon.Message;import mon.MessageType;/*** QQ聊天窗口** */public class QqChar extends JFrame implements ActionListener { JTextField jtf;//输入的文本框JTextArea jta;//文本区域JButton jb;//发送按钮JPanel jp;//装文本框和发送按钮的panelString friend;String userName;public static void main(String[] args) {QqChar qqChar = new QqChar("1","2");}public QqChar(String userName,String friend) {erName = userName;this.friend = friend;jtf = new JTextField(15);jta = new JTextArea();jb = new JButton("发送");jb.addActionListener(this);jp = new JPanel();jp.add(jtf);jp.add(jb);this.add(jta, "Center");this.add(jp, "South");this.setTitle(userName+" 正在和 " + friend + " 聊天");this.setIconImage(newImageIcon("image/qq.png").getImage());this.setSize(300, 200);this.setVisible(true);}public void showMessage(Message message) {String info=message.getSender()+" 对"+message.getGetter()+" 说:"+message.getContext()+"\r\n";this.jta.append(info);}@Overridepublic void actionPerformed(ActionEvent e) {//当点击发送按钮时,把消息发送到服务器端if(e.getSource() == jb) {Message message = new Message();message.setMesType(MessageType.message_common_mes);message.setSender(userName);message.setGetter(friend);message.setContext(jtf.getText());jtf.setText("");message.setTime(new Date().toString());try {ObjectOutputStream oos = newObjectOutputStream(ManageClientConServerThread.getClientConSer verThread(userName).client.getOutputStream());oos.writeObject(message);} catch (Exception e1) {e1.printStackTrace();}}}}QqClientLogin类:import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swing.JTabbedPane;import javax.swing.JTextField;import com.qq.client.model.QqClientUser;import com.qq.client.tools.ManageClientConServerThread; import com.qq.client.tools.ManageQqFriendList;import mon.Message;import mon.MessageType;import er;/*** QQ客户端登入窗口** */public class QqClientLogin extends JFrame implements ActionListener{//定义北部组件JLabel jbl1;//定义中部组件:其中中部组件有一个选项卡的窗口管理,有三个JPanel,一个文本框,一个密码框,4个JLabel,一个清除号码按钮,两个多选框JTabbedPane jtp;//选项卡窗口JPanel jp2;//QQ号码JPanel jp3;//手机号码JPanel jp4;//电子邮件JLabel jp2_jpl1;//QQ号码JLabel jp2_jpl2;//QQ密码JLabel jp2_jpl3;//忘记密码JLabel jp2_jpl4;//申请密码保护JButton jp2_jb1;//清除号码JTextField jp2_jtf;//文本框JPasswordField jp2_jpf;//密码框JCheckBox jp2_jcb1;//隐身登入JCheckBox jp2_jcb2;//记住密码//定义南部组件JPanel jp1;JButton jp1_jb1;//登入按钮JButton jp1_jb2;//取消按钮JButton jp1_jb3;//注册向导按钮public static void main(String[] args) {QqClientLogin qqClientLogin=new QqClientLogin();}public QqClientLogin() {//处理北部的组件jbl1 = new JLabel(new ImageIcon("image/beibu.gif"));//处理中部的组件jp2=new JPanel(new GridLayout(3,3));//把中部分成三行三列jp2_jpl1 = new JLabel("QQ号码", JLabel.CENTER);jp2_jpl2 = new JLabel("QQ密码", JLabel.CENTER);jp2_jpl3 = new JLabel("忘记密码", JLabel.CENTER);jp2_jpl3.setForeground(Color.blue);//把忘记密码设为蓝色jp2_jpl4 = new JLabel("申请密码保护", JLabel.CENTER);jp2_jb1 = new JButton(new ImageIcon("image/clear.png"));jp2_jtf = new JTextField();jp2_jpf = new JPasswordField();jp2_jcb1 = new JCheckBox("隐身登入");jp2_jcb2 = new JCheckBox("记住密码");//把控件按照顺序加入到jp2jp2.add(jp2_jpl1);jp2.add(jp2_jtf);jp2.add(jp2_jb1);jp2.add(jp2_jpl2);jp2.add(jp2_jpf);jp2.add(jp2_jpl3);jp2.add(jp2_jcb1);jp2.add(jp2_jcb2);jp2.add(jp2_jpl4);//创建选项卡窗口,把三个JPanel放进去,最后把选项卡放进JFrame 中jtp=new JTabbedPane();jtp.add("QQ号码",jp2);jp3= new JPanel();jtp.add("手机号码",jp3);jp4=new JPanel();jtp.add("电子邮件",jp4);//处理南部的组件jp1 = new JPanel();jp1_jb1 = new JButton(new ImageIcon("image/dengru.png"));jp1_jb1.addActionListener(this);jp1_jb2 = new JButton(new ImageIcon("image/quxiao.png"));jp1_jb3=new JButton(new ImageIcon("image/xiangdao.png"));//把三个按钮放进jp1中jp1.add(jp1_jb1);jp1.add(jp1_jb2);jp1.add(jp1_jb3);//把定义好的组件放入到JFrame中this.add(jbl1,"North");//放入北部组件this.add(jp1, "South");//放入南部组件this.add(jtp, "Center");//放入中部组件//定义JFrame的一些属性this.setSize(350, 240);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setIconImage(newImageIcon("image/qq.png").getImage());this.setResizable(false);//不允许放大,改变窗口大小等this.setVisible(true);}@Overridepublic void actionPerformed(ActionEvent e) {//用户点击登录按钮if(e.getSource()==jp1_jb1) {User user =new User();user.setName(jp2_jtf.getText().trim());user.setPassWord(newString(jp2_jpf.getPassword()).trim());QqClientUser qqClientUser = new QqClientUser();//判断是否登录成功if(qqClientUser.checkUser(user)) {try {//把创建好友列表提前QqFriendList qqList = newQqFriendList(jp2_jtf.getText());ManageQqFriendList.addQqFriendList(user.getName(), qqList);//发送一个要求返回在线好友的请求包ObjectOutputStream oos = new ObjectOutputStream(ManageClientConServerThread.getClientConServerThread(user.getName()).client.getOutputSt ream());Message message = new Message();message.setSender(user.getName());message.setMesType(MessageType.message_get_onLineFriend);//发送oos.writeObject(message);} catch (Exception e1) {e1.printStackTrace();}this.dispose();} else {JOptionPane.showMessageDialog(this,"QQ号码或者密码错误");}}}}QqFriendList类:package com.qq.client.view;import javax.swing.*;import com.qq.client.tools.ManageQqChar;import mon.Message;import java.awt.*;import java.awt.event.*;/*** 我的好友列表(包括陌生人和黑名单)* */public class QqFriendList extends JFrame implements ActionListener,MouseListener{//第一张卡片信息(我的好友列表)JPanel jphy1;//总panelJPanel jphy2;//中部的panelJPanel jphy3;//南部的panel,放两个buttonJButton jphy_jb1;//我的好友按钮,防在总panel的北部JButton jphy_jb2;//陌生人按钮,放在jphy3中JButton jphy_jb3;//黑名单按钮,放在jphy3中JScrollPane jsp1;//中部的滚动的paneJLabel jbls[];//中部在线好友的列表//第二张卡片信息(陌生人列表)JPanel jpmsr1;//总panelJPanel jpmsr2;//中部的panelJPanel jpmsr3;//南部的panel,放两个buttonJButton jpmsr_jb1;//我的好友按钮,放在jpmsr3中JButton jpmsr_jb2;//陌生人按钮,放在jpmsr3中JButton jpmsr_jb3;//黑名单按钮,放在总的panel的南部JScrollPane jsp2;//中部的滚动的paneString userName;//把整个JFrame变成卡片布局CardLayout c1;public static void main(String[] args) {QqFriendList qqFriendList = new QqFriendList("1");}public QqFriendList(String userName) {erName = userName;//处理第一张卡片jphy_jb1 = new JButton("我的好友");jphy_jb2 = new JButton("陌生人");jphy_jb2.addActionListener(this);jphy_jb3 = new JButton("黑名单");jphy1 = new JPanel(new BorderLayout());//总的JPaneljphy2= new JPanel(new GridLayout(50,1,4,4));//中部的JPanel,假定有五十个好友//给jphy2这个panel中初始化50个好友jbls = new JLabel[50];for(int i=0; i<jbls.length; i++) {jbls[i] = new JLabel(i+1+"", newImageIcon("image/mm.png"), JLabel.LEFT);jbls[i].setEnabled(false);if(jbls[i].getText().equals(userName)) {jbls[i].setEnabled(true);}jbls[i].addMouseListener(this);jphy2.add(jbls[i]);}jphy3 = new JPanel(new GridLayout(2, 1));//把黑名单按钮和陌生人按钮加入到jpyh3中jphy3.add(jphy_jb2);jphy3.add(jphy_jb3);//把jphy2放入滚动的pane中jsp1 = new JScrollPane(jphy2);//把jphy_jb1,jsp1,jphy3分别放入jphy1中北,中,南三个位置jphy1.add(jphy_jb1,"North");jphy1.add(jsp1,"Center");jphy1.add(jphy3,"South");//处理第二张卡片jpmsr_jb1 = new JButton("我的好友");jpmsr_jb1.addActionListener(this);jpmsr_jb2 = new JButton("陌生人");jpmsr_jb3 = new JButton("黑名单");jpmsr1 = new JPanel(new BorderLayout());//总的JPaneljpmsr2 = new JPanel(new GridLayout(20,1,4,4));//中部的JPanel,假定有二十个陌生人//给jpmsr2这个panel中初始化20个陌生人JLabel jbls2[] = new JLabel[20];for(int i=0; i<jbls2.length; i++) {jbls2[i] = new JLabel(i+1+"", newImageIcon("image/mm.png"), JLabel.LEFT);jpmsr2.add(jbls2[i]);}jpmsr3 = new JPanel(new GridLayout(2, 1));//把我的好友按钮和陌生人按钮加入到jpmsr3中jpmsr3.add(jpmsr_jb1);jpmsr3.add(jpmsr_jb2);//把jpmsr1放入滚动的pane中jsp2 = new JScrollPane(jpmsr2);//把jpmsr3,jsp2,jpmsr_jb3分别放入jpmsr1中北,中,南三个位置jpmsr1.add(jpmsr3,"North");jpmsr1.add(jsp2,"Center");jpmsr1.add(jpmsr_jb3,"South");//把卡片放入JFrame中c1 = new CardLayout();this.setLayout(c1);this.add(jphy1, "1");this.add(jpmsr1, "2");//在窗口显示自己的namethis.setTitle(userName);this.setSize(170, 450);this.setVisible(true);}//更新在线好友情况public void updateFriend(Message message) {String onLineFriend[] = message.getContext().split(" ");for(int i=0; i<onLineFriend.length; i++) {jbls[Integer.parseInt(onLineFriend[i])-1].setEnabled(true);}}@Overridepublic void mouseClicked(MouseEvent e) {//响应用户双击事件,并得到好友编号if(e.getClickCount() ==2) {String friendNo = ((JLabel)e.getSource()).getText();QqChar qqChar = new QqChar(userName,friendNo);//把新开的聊天窗口加入到管理聊天窗口的map中ManageQqChar.addQqChar(erName+" "+friendNo, qqChar);}}@Overridepublic void mousePressed(MouseEvent e) {}@Overridepublic void mouseReleased(MouseEvent e) {}@Overridepublic void mouseEntered(MouseEvent e) {//当鼠标移上去时,使好友头像变为红色JLabel j1 = (JLabel)e.getSource();j1.setForeground(Color.red);}@Overridepublic void mouseExited(MouseEvent e) { //当把鼠标移走时,恢复成黑色JLabel j1 = (JLabel)e.getSource();j1.setForeground(Color.black);}@Overridepublic void actionPerformed(ActionEvent e) { //如果点击了陌生人按钮,就显示第二张卡片if(e.getSource()==jphy_jb2) {c1.show(this.getContentPane(), "2");} else if(e.getSource()==jpmsr_jb1) {c1.show(this.getContentPane(), "1");}}}Message类:(由于客户端和服务器端的common包里面的东西是一样的,所以这里只发一遍)package mon;import java.io.Serializable;/*** 发送的消息的类* */public class Message implements Serializable{private int mesType;//服务器返回的信息包:1代表用户验证成功,2代表用户验证失败,3代表其他信息包;private String sender;//发送消息的人private String getter;//接收消息的人private String context;//发送的消息private String time;//发送的时间public int getMesType() {return mesType;}public void setMesType(int mesType) {this.mesType = mesType;}public String getSender() {return sender;}public void setSender(String sender) {this.sender = sender;}public String getGetter() {return getter;}public void setGetter(String getter) {this.getter = getter;}public String getContext() {return context;}public void setContext(String context) { this.context = context;}public String getTime() {return time;}public void setTime(String time) {this.time = time;}}MessageType类:package mon;/*** 定义包的总类* */public interface MessageType {//表明登入成功的包int message_succeed = 1;//表明登入失败的包int message_login_fail = 2;//表明普通的包int message_common_mes = 3;//要求返回在线好友的包int message_get_onLineFriend = 4;//返回在线好友的包int message_ret_onLineFriend = 5; }User类:package mon;import java.io.Serializable;/*** 用户类* */public class User implements Serializable{ private String name;//用户名private String passWord;//密码public String getName() {return name;}public void setName(String name) { = name;}public String getPassWord() {return passWord;}public void setPassWord(String passWord) { this.passWord = passWord;}}ManageClientThread类:package com.qq.server.model;import java.util.HashMap;import java.util.Iterator;import java.util.Map;/*** 这是一个管理服务器和客户端保持通讯的线程类* */public class ManageClientThread {public static Map map = new HashMap<String, SerConClientThread>();//向map中添加一个线程public static void addCilentThread(String userName, SerConClientThread sc) {map.put(userName, sc);}//根据userName取得一个线程public static SerConClientThread getCilentThread(String userName) {return (SerConClientThread) map.get(userName);}//返回当前在线的人的情况public static String getAllOnLineUser() {//使用迭代器完成Iterator it = map.keySet().iterator();String res = "";while(it.hasNext()) {res += it.next().toString() + " ";}return res;}}MyQqServer类:package com.qq.server.model;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import .ServerSocket;import .Socket;import mon.Message;import er;/*** 这是QQ服务器** */public class MyQqServer {public ServerSocket server;public static void main(String[] args) {new MyQqServer();}public MyQqServer() {try {System.out.println("在9999服务器监听.....");server = new ServerSocket(9999);//阻塞,等待某个客户端来连接while(true){Socket client = server.accept();//读取从客户端发来的消息ObjectInputStream ois = newObjectInputStream(client.getInputStream());User user = (User)ois.readObject();System.out.println("姓名是==="+user.getName()+"===密码是---"+user.getPassWord()+"---");ObjectOutputStream oos = newObjectOutputStream(client.getOutputStream());Message message = new Message();//只要密码是123456都让它登录成功if(user.getPassWord().equals("123456")) {message.setMesType(1);oos.writeObject(message);//登入成功,开启一个线程SerConClientThread sc = new SerConClientThread(client);//把该线程加入到map中ManageClientThread.addCilentThread(user.getName(), sc);//启动线程sc.start();//通知其他在线用户sc.notifyOther(user.getName());} else {//登录不成功时message.setMesType(2);oos.writeObject(message);client.close();}}} catch (Exception e) {e.printStackTrace();}}}QqServerUser类由于没写东西,所以不用创建也可以。
11种QQ技术,让你成为QQ高手1.减少QQ占用内存资源的秘笈登陆QQ后,占用内存:约8MQQ离线,占用内存:约10M秘笈:登陆QQ后,随便打开一个好友的对话窗口,把它最小化,QQ占用的内存就变为3M 了,这对于内存小的朋友特别有用!!2.QQ自定义头像上传成功率较高的方法1.将图像剪裁成40*40,再大的图也是这么大..2.将图像转换成bmp格式3.满足以上条件后,我还没出现上传失败的提示,每次都成功4.避开网络高峰期,只要传上去就没问题了.可以随时更换.3.普通QQ号克隆好友首先只要我们先将自己原来的号和新号登陆一遍,然后在以旧号命名的文件夹里找到user.db数据库文件,复制.再到新号的文件夹里粘贴覆盖原文件.然后再登陆新号,你会发现哇~~好友都在了,不过都是永远不上线的,呵呵.没关系,接下来就是我们最关键的一步了,打开好友管理器(别跟我说不知道在哪里哦)在好友列表里选中自己想要加的人,记住哦,要按着ctrl来选啊,选好了,把刚才选中的好友全拉到陌生人一栏里,有人要问我,怎么要删掉啊,先别急,慢慢来,在跳出的对话框里都选确定啊,这样保证才能删掉,然后到陌生人一栏里,像刚才一样选中你的好友, ^_^我拉,拉到好友列表里,哈哈这回要跳出好多要求好友确认的对话框,大功告成!!~~~慢慢点吧,虽然有点麻烦,可这是最简单的哦..4.免费获得QQ高级群/登陆上你的QQ会出现个框然后点你的群! 然后点体验高级群!会出现个协议!点确定! 然后点开始使用高级群! 嘿嘿!成高级群了! 免费体验到明年2月8日一个QQ可以给每个群都申请成为高级群! 登陆/登陆上你的QQ会出现个框然后点你的群! 然后点体验高级群!会出现个协议!点确定! 然后点开始使用高级群! 嘿嘿!成高级群了! 免费体验到明年2月8日一个QQ可以给每个群都申请成为高级群! 5.让你的QQ永不怕回收腾讯官方网站说是普通号码资料空白里边好友无或者过少等等几条信息吧说是三个月不登陆腾讯有权收回号码也确实有号码被回收了是被什么收走了呢是被腾讯的专业扫号程序计算机给你扫走了密码都是16位的随机密码?告诉你个秘密QQ永不怕回收1.去疼讯主站下载个英文版本的QQ2.安装后登陆你的那些不想管理的我非常爱你号码3.记得选择资料选择性别,原始资料是男的选择F 原始资料是女的选择M4.然后把资料里边的:这家伙很懒什么也没有留下删除,记得随手打上“ —”5.照着疼讯的被回收的号码资料例如:1979314这个号码在资料里照搬依次打上—6 是最重要的一条:设置16位数的密码,字母加数字组合再用中文版本登陆查看号码资料年龄34 性别无这样就OK 了永远不怕被回收了可以安全的躲避过腾讯的计算机系统扫描回收对号码大户很有用免得定期登陆的麻烦6.灵验的登录方法相信大家或多或少都有过这样的体验,登录QQ时,小企鹅在屏幕上徒劳地闪动半天之后,弹出来的却是服务器太忙无法登录或者超时的提示框,接连试几次都是这样的,真的有点烦人。
本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==如何更改qq身份证篇一:史上最强QQ申诉技巧帮你找回被盗QQ史上最强QQ申诉技巧帮你找回被盗QQQQ丢了。
想找回QQ密码,除了密码保护就是去申诉。
可是申诉成功的几率很低,怎么才能让成功率高些呢?现在介绍一种非常有效的方法。
1、你可以到QQ秀商城的我的QQ秀→修改设定查询到QQ开始使用时间。
2、你可以到QQ交友中心查询到此QQ主人的地区。
3、你可以到QQ积分地带查询到QQ主人的身份证号码和邮箱。
4、你可以到个人帐户管理查询到QQ由使用的第一天到现在的一切消费记录,如办理的业务及具体时间。
5、你可以上传一些聊天记录。
6、你可以设置网络硬盘密码通讯录密码 QQ帐户密码(这些密码非常有说服力)。
7、你可以赠送一些QQ秀或业务给好友并记下好友的帐号。
8、你可以到QQ游戏中心使用负分清零等一些道具。
9、修改3次以上的密码,并记录下修改的时间(申诉表上需填写3个历史密码)。
10、将你另外一个QQ的好友克隆到此QQ。
11、向某个群捐献Q币并记录QQ群的号码。
然后向以上面的各项数据为依据向腾讯申诉。
此方法据Q商所说是成功率百分百,各位被盗了Q号的朋友不妨试试。
篇二:手机号停用注意十个问题手机号停用注意十个问题停用的手机号会被销号回收,二次放号给其他人使用。
如果你此前使用它绑定了微博、微信、支付宝等等又没有取消,就很危险了!警方提醒广大市民,手机丢失或更换手机号需要小心谨慎,请注意以下几个方面:1.备份电话本:有些人的手机通讯录存有太多重要客户,但疏忽了,等扔了旧卡才知道晚了。
此外,更换手机卡之后旧卡最好保存好了,以免被人利用。
2.手机号码不用及时注销:有些朋友在更换手机号码时直接把老的手机卡弃之不管,认为只要不用了就会自动关闭注销。
事实上,虽然会自动注销,但是会耗费几个月的时间,在这段时间内,系统会自动扣除每个月的月租费,直到注销为止。
在qq里怎样@全体人员
我们经常使用qq群来与好友进行聊天,如果我们需要在qq群里@全体人员,应该怎样操作呢?下面就让店铺告诉你在qq里怎样@全体人员的方法,希望对大家有所帮助。
在qq里@全体人员的方法
1,先登录qq,然后打开聊天面板,选择一个要@全体成员的群。
2,然后在聊天窗口下面的编辑框中,输入@字符,这时就会出现一个成员窗口,在最下面,是一个“全体成员(all)”项,选择这一项。
在qq里@全体人员的步骤图2
3,就会在窗口出现“@全体成员”的字样,这时,就可以在下面输入要传达的信息,然后点“发送”。
在qq里@全体人员的步骤图3
4,所发送的信息就会发到聊天窗口,就能@全群的所有成员。
在qq里@全体人员的步骤图4
5,当然需要再次@全体成员的时,使用同一方法,却@不了,显示为“剩余0次”字样,也就是说,每周只能@一次。
在qq里@全体人员的步骤图5
6,如果想要@无数次,就需要开通超级会员,没开通,每周只有一次权限。
在qq里@全体人员的步骤图6
7,但是,你会发现,有时想@全群时,却发现@不了,只能@好友,却不能@全体成员。
菜单中根本“@全体成员”这一项。
在qq里@全体人员的步骤图7
8,出现这样的原因是,你不是这个群的群主或管理员,@全体成员只能是管理员或群主才能使用。
在qq里@全体人员的步骤图8。
马化腾曾假扮美女QQ陪聊,网友:原来20年前陪我聊天的是你!前几天,小马哥马化腾发了一条朋友圈,纪念QQ第一个版本发布!1999年2月10日,腾讯推出了一款“山寨”版的ICQ(一款由以色列人开发出来的互联网交流软件),命名为:OICQ——这是QQ 的前身。
最早的OICQ安装包不到1MB,采用企鹅logo,主要功能为即时聊天、“中文网络寻呼机”(即通过OICQ给BP机留言)、公共聊天室、传输文件。
在产品上线之后,马化腾和同事还时不时跑到网吧,现场观察用户的使用状况。
马化腾说:“那时,当‘嘀嘀’声从不知哪个黑暗的角落传出的时候,我们的心尖都会跟着抖一下,那种体验从未有过,太美妙了。
”为了推广QQ,马化腾曾假扮美女陪聊网友,不知当时与马化腾热聊的网友,现在作何感想!(年轻时的马化腾)图片来源于:北京时间当时还是英文界面,没有所谓的昵称和个性头像,只显示号码,听说当时注册的号码现在已经卖到天价了。
2000年由于被ICO公司起诉侵权,OICQ改名为QQ。
此时用户已经可以设置昵称和头像了,但聊天界面还是很简陋,讯息要逐条发送、逐条查看。
不过这在当时,已经是一个很大的进步。
天南海北、互不相识的两个人,隔着屏幕打招呼、等待对方回信,每当听到“咳咳”的声音、看到点亮的头像,心就“扑通扑通”直跳。
(2000年的QQ)那时候,男生喜欢叫“往事随风”、“旋风小子”、“无知少年”、“温柔一刀”、“寂寞香烟”,以及各种王子系列女生喜欢叫“轻舞飞扬”、“彩虹女孩”、“爱殇”,还有各种天使、公主系列。
再后来出现了非主流,由各种繁体字、不认识的字组成的名字让人不知所云,比如说「溡緔寳寳「溡緔呗呗▕,佐佴!、▕,佑佴!、凯蒂猫\、.凯蒂猪\、<`&掱惢,! ‘<`&掱偝、! &珍珠·! &奶茶·!在随后的几年,QQ界面越来越美观,功能也越来越多,新增了视频聊天、QQ群、QQ秀等功能,这些功能也沿用至今。
怎么在qq上面@别人
很多年轻的朋友在群里面说话的时候经常会遇到这样的问题,就是大家混聊,有的时候自己想对特定的某个人说话,期望得到TA的正面回答,那么这个时候就需要试用qq聊天工具的@功能了。
下面一起来看看在qq上面@别人的方法。
在qq上面@别人的方法
首先打开qq聊天工具
随便打开一个群,在右边的群成员中找出你想要@的那个人,然后把鼠标放在那个人的qq名字上面,点击右键
这个时候会出现一个快捷菜单,选择@TA
这样就可以成功的@上了你想要倾诉的人,可以直接发起对话了
还有一种方法就是直接在对话框中输入@+用户名,比如说你要找的网名是“珍珠想念”,那么你只要输入“@珍珠想念”就可以了一般你不必输出全部的用户名,只输出一两个字就差不错出来了,点击一下就@上了。
如图:
在qq上面@别人的方法。
龙源期刊网 QQ人作者:敏明的岛来源:《37°女人》2009年第01期在电脑键盘打下“QQ人”这个标题的时候,我发现两个Q连在一起,竟然很像一双眼睛,或者说是戴着眼镜的一双眼睛。
你看,QQ睁着一双大而无辜且有点儿调皮的眼睛,在注视着我们,在等待着我们。
这里所说的QQ,当然是腾讯QQ了。
年幼如五岁小朋友,年长如八十老翁,只要会上网,几乎都有自己的QQ号。
很多人有好几个QQ号,分为工作专用QQ,和陌生人聊天的QQ,和同学、朋友、家人联系的QQ,甚至为某个重要人物特设了一个QQ。
大部分人开机后,都会先打开QQ,不管是否隐身,总想看看可有留言,有谁在线。
如果QQ上的头像是一片黯淡的黑,心里免不了有点儿小疙瘩、小疑问,心想不知他们都忙什么去了。
如果大家都在线,自己也在线,却没有人主动找自己说话,那心里也不免有点儿小失落,觉得自己被世人遗忘,竟没人要和自己说话。
小疙瘩、小疑问和小失落总不能免,但很少有人对QQ彻底失望,发誓戒了QQ并且真正戒掉的人,若无非常经历,必有非常觉悟,或者竟可以称为“非常人”或“高人”。
而平常如我辈者,差不多都要与自己的QQ相始终,除非老到上不了网的那天,除非腾讯公司一夜之间倒闭。
手机号码换了,工作换了,房子换了,甚至老公老婆都不是当初的那个了,当初的QQ却还在使用,只要不是被盗了号码。
《诗经》上说“执子之手,与子偕老”,那是一代一代人向往的太高太美的境界,多少人用一生的时间去追求,只是想不到千载之下,在流动易变的现代社会,竟也可以应验在QQ身上。
你看,我们和QQ的关系,是如此亲密。
这又让我想起大学时认识的一对情侣,男生叫飞,女生叫巧巧,虽然同学校同年级同专业而不同班,他们却是通过QQ相识的,最初的交流也主要依靠QQ。
日后飞称巧巧为“亲爱的QQ”,贴切而别有意味。
后来两人常闹矛盾,分手了,移情别恋了,毕业了,手机也换号码了。
但当初的QQ号没换,两人又通过QQ重续前缘,据说是初恋如金。
第三⽅登录QQ登录⼈⼈⽹登录新浪微博登录⽹站有⾃⼰的账号系统,这⾥使⽤的第三⽅登录仅仅是获取第三⽅账号的唯⼀id,昵称,性别进⾏本⽹站的⾃动注册。
⾃⾏到QQ,⼈⼈⽹和新浪微博的开发平台申请并获得对应的appqq:sina:⼈⼈:在做⼈⼈⽹的连接时审核了3次才通过:引⼊qq的js<script type="text/javascript" src="/qzone/openapi/qc_loader.js" data-appid="你申请的id" charset="utf-8"></script><script type="text/javascript" src="/qzone/openapi/qc_loader.js" charset="utf-8" data-callback="true"></script>不需要按照官⽹的做法,登录的做法也不过是跳转的⼀个链接⽽已,改为⾃⼰相应的参数就可以:<tr><td align="right" style="font-size:12px;">其他⽅式:</td><td class="loginap"><% string href1 = "_" + url + "&response_type=token&scope=all";string href2 = "/oauth/grant?client_id=你申请的id&redirect_uri=/Login.aspx?type=rr_true_" + url.Replace("?","%3F") + "&response_type=code&display=page&secure=true&origin=00000 string href3 = "https:///oauth2/authorize?client_id=你申请的id&redirect_uri=/Login.aspx?type=sina_true_" + url + "&response_type=code&state=2";%><a href="<%=href1 %>" class="qqicon" title="QQ登录"></a><a href="<%=href2 %>" class="rricon" title="⼈⼈登录"></a><a href="<%=href3 %>" class="sinaicon" title="新浪登录"></a></td></tr>获取信息并注册:<script type="text/javascript">var code = "<%=code %>";var error = "<%=error %>";var type = "<%=type %>";if (type == "qq") {//从页⾯收集OpenAPI必要的参数。
易容大法,QQ摇身变作MSN
我思故我在
【期刊名称】《电脑迷》
【年(卷),期】2004(0)11
【摘要】通过MSN Shell插件程序可在MSN的面板中集成QQ 的聊天功能,这让那些MSN的Fans们喜不自禁。
可是令广大QQ迷伤心的是到现在为止尚不能实现在QQ中绑定MSN 的聊天功能,但笔者今天给大家介绍的MSNING Skin却可以把QQ轻松地妆扮成MSN的界面。
【总页数】1页(P92-92)
【关键词】插件程序;软件界面;功能;集成;控制面板;绑定;实现;介绍;安装;操作过程【作者】我思故我在
【作者单位】
【正文语种】中文
【中图分类】TP393.09
【相关文献】
1.我的QQ昵称有些酷/易容大法,QQ摇身变作MSN/巧设软件协议解决ADSL多机上网 [J],
2.MSN Messenger也玩QQ秀 MSN Messenger Shell新功能尝鲜 [J],
3.你的MSN Messenger 5还需要助手吗/让QQ网友排队候选/QQ名单快速翻页[J],
4.让MSN拥有QQ会员的超酷功能巧用WebDrive实现MSN的聊天记录网络存储 [J], 火凤凰
5.为MSN和ICQ穿上QQ的外衣QMM=QQ(ICQ+MSN+SMS) [J], 冯小民
因版权原因,仅展示原文概要,查看原文内容请购买。
这是一个简单的javaProject项目,没有涉及到数据库界面对这个项目中完成的功能进行阐述:1、qq用户登录:用户账号为1、2、3一直到50,密码都为123456,由于没有涉及到数据库,所以只是简单的在服务器进行验证。
2、实现1对1之间的聊天,实现1对多之间的聊天。
3、实现用户上线显示功能具体的演示为:1、启动服务器QqServer下com.qq.view.MyServerFrame,在该类下面启动服务器2、启动客户端QqClient下com.qq.view.QqClientLogin,在该类下面输入账号和密码登入ps:聊天时要把要把需要聊天的窗口都打开,才能看到。
比如1和2聊天,必须打开1对2聊天的窗口和2对1聊天的窗口QQ客户端:QQ服务器下面的是关于各个包的源代码,小伙伴们可以新建一个class,然后把这些拷贝上去就可以用了,当然前提是按照上面的工程创建好包Image文件夹下用到的图片:命名为:beibu.gif命名为:xiangdao.png命名为:quxiao.png命名为:qq.png命名为:mm.png命名为:clear.png命名为:dengru.pngQqClientConService类:package com.qq.client.model;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import .Socket;import com.qq.client.tools.ClientConServerThread;import com.qq.client.tools.ManageClientConServerThread; import mon.Message;import er;/*** 客户端连接服务器后台* */public class QqClientConService {public Socket client;//判断是否成功登录,成功返回true,否则返回falsepublic boolean sendLoginInfoToServer(Object o) {boolean isLogin = false;try {//创建连接client = new Socket("localhost", 9999);ObjectOutputStream oos = newObjectOutputStream(client.getOutputStream());oos.writeObject(o);ObjectInputStream ois = newObjectInputStream(client.getInputStream());Message message = (Message)ois.readObject();//登录成功的判断if(message.getMesType()==1) {isLogin = true;//登录成功,创建一个改客户端和服务器的线程ClientConServerThread ccst = new ClientConServerThread(client);//把改线程添加到管理线程的map中ManageClientConServerThread.addClientConServerThread(((User )o).getName(), ccst);//启动该线程new Thread(ccst).start();}} catch (Exception e) {e.printStackTrace();}return isLogin;}}QqClientUser类:package com.qq.client.model;import er;/*** 这是QQ客户端,发送用户名和密码** */public class QqClientUser {//调用客户端连接服务器后台的方法,返回true为成功登录,false为登入失败public boolean checkUser(User user) {return newQqClientConService().sendLoginInfoToServer(user);}}ClientConServerThread类:package com.qq.client.tools;import java.io.ObjectInputStream;import .Socket;import com.qq.client.view.QqChar;import com.qq.client.view.QqFriendList;import mon.Message;import mon.MessageType;/*** 这是客户端和服务器保持通讯的线程* */public class ClientConServerThread implements Runnable{ public Socket client;public ClientConServerThread(Socket client) {this.client = client;}@Overridepublic void run() {//不停的读取从服务器发来的消息while(true) {try {ObjectInputStream ois = newObjectInputStream(client.getInputStream());Message message = (Message) ois.readObject();//判断发来的消息包是否为普通消息包,或者是返回在线好友的包if(message.getMesType() ==MessageType.message_common_mes) {//把从服务器发来的消息显示在聊天界面:1.从管理聊天窗口的类中取得该窗口 2.调用显示方法.QqChar qqChar =ManageQqChar.getQqChar(message.getGetter()+""+message.getSender());qqChar.showMessage(message);} else if(message.getMesType() == MessageType.message_ret_onLineFriend) {String getter = message.getGetter();//修改响应的好友列表QqFriendList qqFriendList = ManageQqFriendList.getQqFriendList(getter);//更新在线好友if(qqFriendList != null) {qqFriendList.updateFriend(message);}}} catch (Exception e) {e.printStackTrace();}}}}ManageClientConServerThread类:package com.qq.client.tools;import java.util.HashMap;import java.util.Map;/*** 这是一个管理客户端和服务器保持通讯的线程类* */public class ManageClientConServerThread {public static Map map = new HashMap<String, ClientConServerThread>();//把线程添加到map中public static void addClientConServerThread(String userName, ClientConServerThread ccst) {map.put(userName, ccst);}//根据用户名取得该线程public static ClientConServerThread getClientConServerThread(String userName) {return (ClientConServerThread)map.get(userName);}}ManageQqChar类:package com.qq.client.tools;import java.util.HashMap;import java.util.Map;import com.qq.client.view.QqChar;/*** 这是一个管理用户聊天界面的类* */public class ManageQqChar {public static Map map = new HashMap<String, QqChar>();//把用户聊天界面Qqchar添加到map中public static void addQqChar(String loginAndFriend, QqChar qqchar) {map.put(loginAndFriend, qqchar);}//根据登入用户和发送用户取得该聊天界面public static QqChar getQqChar(String loginAndFriend) { return (QqChar)map.get(loginAndFriend);}}ManageQqFriendList类:package com.qq.client.tools;import java.util.HashMap;import java.util.Map;import com.qq.client.view.QqFriendList;/*** 管理好友、黑名单..界面类* */public class ManageQqFriendList {public static Map map = new HashMap<String, QqFriendList>();//把用用户列表类添加到map中public static void addQqFriendList(String userName, QqFriendList list) {map.put(userName, list);}//根据登录用户取得该用户列表类public static QqFriendList getQqFriendList(String userName) { return (QqFriendList)map.get(userName);}}package com.qq.client.view;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.ObjectOutputStream;import java.util.Date;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JTextArea;import javax.swing.JTextField;import com.qq.client.tools.ManageClientConServerThread;import mon.Message;import mon.MessageType;/*** QQ聊天窗口** */public class extends JFrame implements ActionListener { JTextField jtf;//输入的文本框JTextArea jta;//文本区域JButton jb;//发送按钮JPanel jp;//装文本框和发送按钮的panelString friend;String userName;public static void main(String[] args) {QqChar qqChar = new QqChar("1","2");}public QqChar(String userName,String friend) {erName = userName;this.friend = friend;jtf = new JTextField(15);jta = new JTextArea();jb = new JButton("发送");jb.addActionListener(this);jp = new JPanel();jp.add(jtf);jp.add(jb);this.add(jta, "Center");this.add(jp, "South");this.setTitle(userName+" 正在和 " + friend + " 聊天");this.setIconImage(newImageIcon("image/qq.png").getImage());this.setSize(300, 200);this.setVisible(true);}public void showMessage(Message message) {String info=message.getSender()+" 对"+message.getGetter()+" 说:"+message.getContext()+"\r\n";this.jta.append(info);}@Overridepublic void actionPerformed(ActionEvent e) {//当点击发送按钮时,把消息发送到服务器端if(e.getSource() == jb) {Message message = new Message();message.setMesType(MessageType.message_common_mes);message.setSender(userName);message.setGetter(friend);message.setContext(jtf.getText());jtf.setText("");message.setTime(new Date().toString());try {ObjectOutputStream oos = newObjectOutputStream(ManageClientConServerThread.getClientConSer verThread(userName).client.getOutputStream());oos.writeObject(message);} catch (Exception e1) {e1.printStackTrace();}}}}import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swing.JTabbedPane;import javax.swing.JTextField;import com.qq.client.model.QqClientUser;import com.qq.client.tools.ManageClientConServerThread; import com.qq.client.tools.ManageQqFriendList;import mon.Message;import mon.MessageType;import er;/*** QQ客户端登入窗口** */public class extends JFrame implements //定义北部组件JLabel jbl1;//定义中部组件:其中中部组件有一个选项卡的窗口管理,有三个JPanel,一个文本框,一个密码框,4个JLabel,一个清除号码按钮,两个多选框JTabbedPane jtp;//选项卡窗口JPanel jp2;//QQ号码JPanel jp3;//手机号码JPanel jp4;//电子邮件JLabel jp2_jpl1;//QQ号码JLabel jp2_jpl2;//QQ密码JLabel jp2_jpl3;//忘记密码JLabel jp2_jpl4;//申请密码保护JButton jp2_jb1;//清除号码JTextField jp2_jtf;//文本框JPasswordField jp2_jpf;//密码框JCheckBox jp2_jcb1;//隐身登入JCheckBox jp2_jcb2;//记住密码//定义南部组件JPanel jp1;JButton jp1_jb1;//登入按钮JButton jp1_jb2;//取消按钮JButton jp1_jb3;//注册向导按钮public static void main(String[] args) {QqClientLogin qqClientLogin=new QqClientLogin();}public QqClientLogin() {//处理北部的组件jbl1 = new JLabel(new ImageIcon("image/beibu.gif"));//处理中部的组件jp2=new JPanel(new GridLayout(3,3));//把中部分成三行三列jp2_jpl1 = new JLabel("QQ号码", JLabel.CENTER);jp2_jpl2 = new JLabel("QQ密码", JLabel.CENTER);jp2_jpl3 = new JLabel("忘记密码", JLabel.CENTER);jp2_jpl3.setForeground(Color.blue);//把忘记密码设为蓝色jp2_jpl4 = new JLabel("申请密码保护", JLabel.CENTER);jp2_jb1 = new JButton(new ImageIcon("image/clear.png"));jp2_jtf = new JTextField();jp2_jpf = new JPasswordField();jp2_jcb1 = new JCheckBox("隐身登入");jp2_jcb2 = new JCheckBox("记住密码");//把控件按照顺序加入到jp2jp2.add(jp2_jpl1);jp2.add(jp2_jtf);jp2.add(jp2_jb1);jp2.add(jp2_jpl2);jp2.add(jp2_jpf);jp2.add(jp2_jpl3);jp2.add(jp2_jcb1);jp2.add(jp2_jcb2);jp2.add(jp2_jpl4);//创建选项卡窗口,把三个JPanel放进去,最后把选项卡放进JFrame 中jtp=new JTabbedPane();jtp.add("QQ号码",jp2);jp3= new JPanel();jtp.add("手机号码",jp3);jp4=new JPanel();jtp.add("电子邮件",jp4);//处理南部的组件jp1 = new JPanel();jp1_jb1 = new JButton(new ImageIcon("image/dengru.png"));jp1_jb1.addActionListener(this);jp1_jb2 = new JButton(new ImageIcon("image/quxiao.png"));jp1_jb3=new JButton(new ImageIcon("image/xiangdao.png"));//把三个按钮放进jp1中jp1.add(jp1_jb1);jp1.add(jp1_jb2);jp1.add(jp1_jb3);//把定义好的组件放入到JFrame中this.add(jbl1,"North");//放入北部组件this.add(jp1, "South");//放入南部组件this.add(jtp, "Center");//放入中部组件//定义JFrame的一些属性this.setSize(350, 240);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setIconImage(newImageIcon("image/qq.png").getImage());this.setResizable(false);//不允许放大,改变窗口大小等this.setVisible(true);}@Overridepublic void actionPerformed(ActionEvent e) {//用户点击登录按钮if(e.getSource()==jp1_jb1) {User user =new User();user.setName(jp2_jtf.getText().trim());user.setPassWord(newString(jp2_jpf.getPassword()).trim());QqClientUser qqClientUser = new QqClientUser();//判断是否登录成功if(qqClientUser.checkUser(user)) {try {//把创建好友列表提前QqFriendList qqList = newQqFriendList(jp2_jtf.getText());ManageQqFriendList.addQqFriendList(user.getName(), qqList);//发送一个要求返回在线好友的请求包ObjectOutputStream oos = new ObjectOutputStream(ManageClientConServerThread.getClientConServerThread(user.getName()).client.getOutputSt ream());Message message = new Message();message.setSender(user.getName());message.setMesType(MessageType.message_get_onLineFriend);//发送oos.writeObject(message);} catch (Exception e1) {e1.printStackTrace();}this.dispose();} else {JOptionPane.showMessageDialog(this,"QQ号码或者密码错误");}}}}package com.qq.client.view;import javax.swing.*;import com.qq.client.tools.ManageQqChar;import mon.Message;import java.awt.*;import java.awt.event.*;/*** 我的好友列表(包括陌生人和黑名单)* */public class extends JFrame implements //第一张卡片信息(我的好友列表)JPanel jphy1;//总panelJPanel jphy2;//中部的panelJPanel jphy3;//南部的panel,放两个buttonJButton jphy_jb1;//我的好友按钮,防在总panel的北部JButton jphy_jb2;//陌生人按钮,放在jphy3中JButton jphy_jb3;//黑名单按钮,放在jphy3中JScrollPane jsp1;//中部的滚动的paneJLabel jbls[];//中部在线好友的列表//第二张卡片信息(陌生人列表)JPanel jpmsr1;//总panelJPanel jpmsr2;//中部的panelJPanel jpmsr3;//南部的panel,放两个buttonJButton jpmsr_jb1;//我的好友按钮,放在jpmsr3中JButton jpmsr_jb2;//陌生人按钮,放在jpmsr3中JButton jpmsr_jb3;//黑名单按钮,放在总的panel的南部JScrollPane jsp2;//中部的滚动的paneString userName;//把整个JFrame变成卡片布局CardLayout c1;public static void main(String[] args) {QqFriendList qqFriendList = new QqFriendList("1");}public QqFriendList(String userName) {erName = userName;//处理第一张卡片jphy_jb1 = new JButton("我的好友");jphy_jb2 = new JButton("陌生人");jphy_jb2.addActionListener(this);jphy_jb3 = new JButton("黑名单");jphy1 = new JPanel(new BorderLayout());//总的JPaneljphy2= new JPanel(new GridLayout(50,1,4,4));//中部的JPanel,假定有五十个好友//给jphy2这个panel中初始化50个好友jbls = new JLabel[50];for(int i=0; i<jbls.length; i++) {jbls[i] = new JLabel(i+1+"", newImageIcon("image/mm.png"), JLabel.LEFT);jbls[i].setEnabled(false);if(jbls[i].getText().equals(userName)) {jbls[i].setEnabled(true);}jbls[i].addMouseListener(this);jphy2.add(jbls[i]);}jphy3 = new JPanel(new GridLayout(2, 1));//把黑名单按钮和陌生人按钮加入到jpyh3中jphy3.add(jphy_jb2);jphy3.add(jphy_jb3);//把jphy2放入滚动的pane中jsp1 = new JScrollPane(jphy2);//把jphy_jb1,jsp1,jphy3分别放入jphy1中北,中,南三个位置jphy1.add(jphy_jb1,"North");jphy1.add(jsp1,"Center");jphy1.add(jphy3,"South");//处理第二张卡片jpmsr_jb1 = new JButton("我的好友");jpmsr_jb1.addActionListener(this);jpmsr_jb2 = new JButton("陌生人");jpmsr_jb3 = new JButton("黑名单");jpmsr1 = new JPanel(new BorderLayout());//总的JPaneljpmsr2 = new JPanel(new GridLayout(20,1,4,4));//中部的JPanel,假定有二十个陌生人//给jpmsr2这个panel中初始化20个陌生人JLabel jbls2[] = new JLabel[20];for(int i=0; i<jbls2.length; i++) {jbls2[i] = new JLabel(i+1+"", newImageIcon("image/mm.png"), JLabel.LEFT);jpmsr2.add(jbls2[i]);}jpmsr3 = new JPanel(new GridLayout(2, 1));//把我的好友按钮和陌生人按钮加入到jpmsr3中jpmsr3.add(jpmsr_jb1);jpmsr3.add(jpmsr_jb2);//把jpmsr1放入滚动的pane中jsp2 = new JScrollPane(jpmsr2);//把jpmsr3,jsp2,jpmsr_jb3分别放入jpmsr1中北,中,南三个位置jpmsr1.add(jpmsr3,"North");jpmsr1.add(jsp2,"Center");jpmsr1.add(jpmsr_jb3,"South");//把卡片放入JFrame中c1 = new CardLayout();this.setLayout(c1);this.add(jphy1, "1");this.add(jpmsr1, "2");//在窗口显示自己的namethis.setTitle(userName);this.setSize(170, 450);this.setVisible(true);}//更新在线好友情况public void updateFriend(Message message) {String onLineFriend[] = message.getContext().split(" ");for(int i=0; i<onLineFriend.length; i++) {jbls[Integer.parseInt(onLineFriend[i])-1].setEnabled(true);}}@Overridepublic void mouseClicked(MouseEvent e) {//响应用户双击事件,并得到好友编号if(e.getClickCount() ==2) {String friendNo = ((JLabel)e.getSource()).getText();QqChar qqChar = new QqChar(userName,friendNo);//把新开的聊天窗口加入到管理聊天窗口的map中ManageQqChar.addQqChar(erName+" "+friendNo, qqChar);}}@Overridepublic void mousePressed(MouseEvent e) {}@Overridepublic void mouseReleased(MouseEvent e) {}@Overridepublic void mouseEntered(MouseEvent e) {//当鼠标移上去时,使好友头像变为红色JLabel j1 = (JLabel)e.getSource();j1.setForeground(Color.red);}@Overridepublic void mouseExited(MouseEvent e) { //当把鼠标移走时,恢复成黑色JLabel j1 = (JLabel)e.getSource();j1.setForeground(Color.black);}@Overridepublic void actionPerformed(ActionEvent e) { //如果点击了陌生人按钮,就显示第二张卡片if(e.getSource()==jphy_jb2) {c1.show(this.getContentPane(), "2");} else if(e.getSource()==jpmsr_jb1) {c1.show(this.getContentPane(), "1");}}}package mon;import java.io.Serializable;/*** 发送的消息的类* */public class implements Serializable{private int mesType;//服务器返回的信息包:1代表用户验证成功,2代表用户验证失败,3代表其他信息包;private String sender;//发送消息的人private String getter;//接收消息的人private String context;//发送的消息private String time;//发送的时间public int getMesType() {return mesType;}public void setMesType(int mesType) {this.mesType = mesType;}public String getSender() {return sender;}public void setSender(String sender) {this.sender = sender;}public String getGetter() {return getter;}public void setGetter(String getter) {this.getter = getter;}public String getContext() {return context;}public void setContext(String context) { this.context = context;}public String getTime() {return time;}public void setTime(String time) {this.time = time;}}MessageType类:package mon;/*** 定义包的总类* */public interface MessageType {//表明登入成功的包int message_succeed = 1;//表明登入失败的包int message_login_fail = 2;//表明普通的包int message_common_mes = 3;//要求返回在线好友的包int message_get_onLineFriend = 4;//返回在线好友的包int message_ret_onLineFriend = 5; }package mon;import java.io.Serializable;/*** 用户类* */public class implements Serializable{ private String name;//用户名private String passWord;//密码public String getName() {return name;}public void setName(String name) { = name;}public String getPassWord() {return passWord;}public void setPassWord(String passWord) { this.passWord = passWord;}}ManageClientThread类:package com.qq.server.model;import java.util.HashMap;import java.util.Iterator;import java.util.Map;/*** 这是一个管理服务器和客户端保持通讯的线程类* */public class ManageClientThread {public static Map map = new HashMap<String, SerConClientThread>();//向map中添加一个线程public static void addCilentThread(String userName, SerConClientThread sc) {map.put(userName, sc);}//根据userName取得一个线程public static SerConClientThread getCilentThread(String userName) {return (SerConClientThread) map.get(userName);}//返回当前在线的人的情况public static String getAllOnLineUser() {//使用迭代器完成Iterator it = map.keySet().iterator();String res = "";while(it.hasNext()) {res += it.next().toString() + " ";}return res;}}MyQqServer类:package com.qq.server.model;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import .ServerSocket;import .Socket;import mon.Message;import er;/*** 这是QQ服务器** */public class MyQqServer {public ServerSocket server;public static void main(String[] args) {new MyQqServer();}public MyQqServer() {try {System.out.println("在9999服务器监听.....");server = new ServerSocket(9999);//阻塞,等待某个客户端来连接while(true){Socket client = server.accept();//读取从客户端发来的消息ObjectInputStream ois = newObjectInputStream(client.getInputStream());User user = (User)ois.readObject();System.out.println("姓名是==="+user.getName()+"===密码是---"+user.getPassWord()+"---");ObjectOutputStream oos = newObjectOutputStream(client.getOutputStream());Message message = new Message();//只要密码是123456都让它登录成功if(user.getPassWord().equals("123456")) {message.setMesType(1);oos.writeObject(message);//登入成功,开启一个线程SerConClientThread sc = new SerConClientThread(client);//把该线程加入到map中ManageClientThread.addCilentThread(user.getName(), sc);//启动线程sc.start();//通知其他在线用户sc.notifyOther(user.getName());} else {//登录不成功时message.setMesType(2);oos.writeObject(message);client.close();}}} catch (Exception e) {e.printStackTrace();}}}QqServerUser类由于没写东西,所以不用创建也可以。
从qq变成人人
qq现在像一个人去楼空的城堡,即使我们想进去看看,大多也只愿意隐身
而人人像一个热闹的酒馆,即使我们不了解里面的人,也愿意随意喝两杯
但当我们真的有事时,我们会选择qq
因为虽然有的人是以昵称出现
有的备注被我们改成了曾经的外号,但我们会觉得更真实
人人上名字虽然很清楚,但就如手机里的电话本一样
我们能找到每个人的电话,但我们无法像从前那样把那一个个数字融入感情,轻松地背出来。
上qq时我们等待的可能只是那一两个人,我们可以和那一两个人毫无顾及地聊到深夜但我们没有足够的时间和任意一个人长聊,
于是我们选择了隐身,隐身去等待那一两个人的出现
出现后开始聊天
而人人是个更开放的平台,它更加委婉,更加随意,更加随时
我们可以和一堆人一人扯一句,即使我们不熟
相比一段完整时间的即时的投入
越来越忙的我们更加倾向于在任意的一个时刻动动手指
看看朋友们今天都干了什么
并不能说明哪个平台好哪个平台坏,哪个平台真哪个平台假
这只能说明我们长大了,我们开始了更加匆忙,更加社会化的生活
多年前,我们是那样的痴迷周杰伦
他的每一张专辑
每一首歌熟到听到旋律就可以轻轻哼唱
从初中到高中
从快歌到慢歌
从方文山的词到周董自己的曲
每一首,都是那样熟悉
可是高三后就再没听过周杰伦
甚至不知道他的新歌有什么
我们开始好久不见我们开始红玫瑰
关于那蒲公英的约定除了仅存的优乐美广告歌的印象我们还记得什么
我们开始明白有些人我永远不必等
我们开始了解十年之后我们还可以是朋友
我们开始幻想街角那家咖啡店幻想一句好久不见
最终却明白我想见的笑脸只有怀念成熟的表演不如不见
关于爱情我们不再把爱深埋珊瑚海
我们开始轻轻哼因为爱情难免会有沧桑
再也不会对“想带你去看棒球,想待你去骑单车”有任何期待我们开始懂了其实爱情幼稚
一个人失眠全世界失眠
再也不相信手牵手一步两步三步四步
低吟爱我的人不寂寞我爱的人喜欢我
这样就好
多少人开始浮夸
多少人感叹得不到的永远在骚动,被偏爱的都有恃无恐
多少人又在意淫好久不见的主角是自己
多少人又为遇见哪个某某花光所有运气
早忘了JA Y歌里的欢快和朝气
忘了那种小清新忘了那种浅浅忧伤
淡淡的忧伤的旋律现在好像更适合我们的心境
而那些歇斯底里的夸张浮夸
却更道出我们心声
这十年有多少人从周杰伦到陈奕迅
这十年有多少人从上线到隐身
这十年有多少人又从QQ到人人
好友越来越多能说上话的又有几个
我们越来越闲却都开始寂寞和空虚
大家都在一起的时候我们不是集体聊天而是各自拿出手机现在只会默默转发连聊天都不会
大家可曾记得没有QQ的我们当年还是那样快乐
我想我们是可耻的长大了。