扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
准备工作:
成都创新互联公司是一家集网站建设,正阳企业网站建设,正阳品牌网站建设,网站定制,正阳网站建设报价,网络营销,网络优化,正阳网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
两个QQ(Q号现在好容易申请)
eclipse(支持awt swing 可视化开发的版本为佳)
JDK 以上
JQL 直接从官方那蚂冲数边下载的不能直接用需要改装 下载地址:
步闷首骤:
解压jqgsv beta_src
用eclipse导入目录jqgsv beta_src下的项目
把jqgsv beta_src目录下的mons codec jar 和 mons logging jar加到项目属性里的Librares中
打开判乱 myqq MuiltQQfrendSend 实例代码都在这里 可以直接运行用eclipse运行该类 如果登陆失败 多登陆
几次就可以了
//登陆代码
client = new QQClient();
client setConnectionPoolFactory(new PortGateFactory());
QQUser user = new QQUser(你的Q号 你Q号的密码);
client addQQListener(this);
user setUdp(true);
client setUser(user);
//client setLoginServer( );
client setLoginServer( );
qq服务器地址有多种 你可以选一个填上去 QQ号必须是整型
//发送消息
client sendIM(一个好友的QQ号 Util getBytes(ext));//发送一个普通的消息
好友的QQ号必须是整型
类QQClient主要是执行QQ客户端的动作 比如 发送消息 添加好友 获取好友等
//获取你的Q号下的所有好友信息
GetFriendListReplyPacket gf = (GetFriendListReplyPacket)e getSource();
java util List friends = (java util List) gf friends;
for(int i = ; i friends size() ; i++){
QQFriend qf = (QQFriend)friends get(i);
jTextArea setText(jTextArea getText() + String valueOf(qf qqNum) + \n );
}
if((int)gf position != ){
client getFriendList(gf position);
}else{
jButton setEnabled(true);
jButton setEnabled(true);
}
client getFriendList() //获取好友列表
这个方法需要配合一个变量position和一个事件才能完成 因为QQ是按多次发送好友列表 position =
表示已到好友列表最后一页 不需要在getFriendList 当得到好友列表会产生一个事件 事件编号为
GetFriendListReplyPacket 好友类
//事件驱动
jql全部采用事件驱动 实现接口 IQQListener
public void qqEvent(QQEvent e) {//事件监听器
System out println( 事件ID: + e type);
/* */ switch(e type)
{
/* MISALIGNED */ /* */ default:
break;
/* MISALIGNED */ /* */ case :
/* MISALIGNED */ /* */ processLoginSuccess();//对应的事件处理
/* MISALIGNED */ /* */ break;
/* MISALIGNED */ /* */ case :
/* MISALIGNED */ /* */ processLoginFail();
/* MISALIGNED */ /* */ break;
///* MISALIGNED */ /* */ case :
///* MISALIGNED */ /* */ processLoginUnknownError();
///* MISALIGNED */ /* */ break;
/* MISALIGNED */ /* */ case :
/* MISALIGNED */ /* */ processSendIMSuccess();
/* MISALIGNED */ /* */ break;
/* MISALIGNED */ /* */ case :
/* MISALIGNED */ /* */ processChangeStatusSuccess();
QQ的每次动作都会产生一个事件 每个事件对应一个整数 在类edu tsinghua lumaqq qq events QQEvent有具体描述
lishixinzhi/Article/program/Java/hx/201311/26541
package com.tanyue;
import javax.swing.JComboBox;
import javax.swing.JFrame;
public class Test 弯岁{
/**
* @param args
*/
public static void main(String[] args) {
// TODO 睁含Auto-generated method stub
JFrame frame = 悉闹笑new JFrame("box");
JComboBox box = new JComboBox();
box.addItem("好友1");
box.addItem("好友2");
box.addItem("好友3");
box.addItem("好友4");
frame.setBounds(0, 0, 300, 300);
frame.add(box);
frame.setVisible(true);
}
}
好友类里面包括姓名 联系方式 邮箱等等
class Friend{
String name;
String contact;
String email;
Friend(String name,String contact,String email){
构造函数
}
getter
setter
}
上面只是个雏形自己完善
用一个ArrayListFriend来储存所有的Friends
取,删或耐桥者增直接调用ArrayList的函数
用swing来显示所有的好友。。for循环读取ArrayList
然稿亩春后批量加入swing GUI显示就行
可以用键耐JTable或者直接用JPanel等等
首先要有个存好友的数据结构:friendList
既然是QQ,厅态那么肯定有好友类别了,一个类别底下的子节点为一个好友。
然后根据这个数据结构画出这个Jtree,
第一列毁洞字节点为好友类别,
第二列子节点为好友,给这些字节点添加鼠标点击事件,点击后弹出想扮余源要的东西。
最后,在接收信息进程内添加一个方法,即一旦有好友上线或者下线则接收改变的好友的信息,之前的存好友的数据结构也随之改变,
再根据这个数据结构改变这个JTree,不会改变的话就重新画一个,tree=new JTree();(tree为之前的列表),这样就可以了。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流