利用JML开发的一个小例子,附详细注释

利用JML开发的一个小例子,附详细注释。有问题的地方希望大家能帮我提出来,呵呵

/**/ /*
*msntest.java
*
*Createdon2007年4月11日,下午1:40
*
*Tochangethistemplate,chooseTools|TemplateManager
*andopenthetemplateintheeditor.
*/


package javamsn;

import java.text.SimpleDateFormat;
import java.util.Date;
import net.sf.jml.MsnContact;
import net.sf.jml.MsnList;
import net.sf.jml.MsnMessenger;
import net.sf.jml.MsnProtocol;
import net.sf.jml.MsnSwitchboard;
import net.sf.jml.MsnUserStatus;
import net.sf.jml.event.MsnAdapter;
import net.sf.jml.impl.MsnContactImpl;
import net.sf.jml.impl.MsnMessengerFactory;
import net.sf.jml.message.MsnControlMessage;
import net.sf.jml.message.MsnDatacastMessage;
import net.sf.jml.message.MsnInstantMessage;
import net.sf.jml.message.MsnSystemMessage;
import net.sf.jml.message.MsnUnknownMessage;

/***/ /**
*欢迎装载,但请说明出处
*
@authorzhappy
*/

public class msntest extends MsnAdapter ... {
privateMsnMessengermessenger=null;
privateStringemail=null,password=null;

/***//**Createsanewinstanceofmsntest*/
publicmsntest()...{
}


publicstaticvoidmain(Stringargs[])
throwsClassNotFoundException,InstantiationException,IllegalAccessException...{
msntestmsn
=(msntest)Class.forName("javamsn.msntest").newInstance();//创建类实例
msn.setEmail("throbot@msn.com");//设置登录用户
msn.setPassword("01234567890");//设置密码
msn.start();
}


//打印信息
privatestaticvoidmsg(Objectobj)...{
SimpleDateFormatsdf
=newSimpleDateFormat("MM-ddHH:mm");
if(objinstanceofThrowable)
System.err.println(
"["+sdf.format(newDate())+"]"+obj);
else
System.out.println(
"["+sdf.format(newDate())+"]"+obj);
}


privatevoidstart()...{
messenger
=MsnMessengerFactory.createMsnMessenger(email,password);//创建MsnMessenger
messenger.setSupportedProtocol(newMsnProtocol[]...{MsnProtocol.MSNP12});//设置登录协议
messenger.getOwner().setInitStatus(MsnUserStatus.ONLINE);//设置用户状态
messenger.addListener(this);//注册事件
messenger.login();//登录
}


//收到正常信息的时候发生
publicvoidinstantMessageReceived(MsnSwitchboardswitchboard,
MsnInstantMessagemessage,MsnContactcontact)
...{
msg(contact.getDisplayName()
+"对我说:"+message.getContent());
//如果聊天内容为exit,退出
if(message.getContent().trim().equalsIgnoreCase("exit"))...{
msg(contact.getDisplayName()
+"对我发出退出指令。");
messenger.logout();
System.exit(
0);
}

message.setContent(
"Hello,I'mrobot!");//设置要发送消息内容
message.setFontRGBColor((int)(Math.random()*255*255*255));//设置消息的文本颜色
switchboard.sendMessage(message);//发送信息
}


//收到系统信息的时候发生,登录时
publicvoidsystemMessageReceived(MsnMessengermessenger,
MsnSystemMessagemessage)
...{
//msg(messenger+"recvsystemmessage"+message);
}


//当在联系人聊天窗口获得光标并按下第一个键时发生
publicvoidcontrolMessageReceived(MsnSwitchboardswitchboard,
MsnControlMessagemessage,MsnContactcontact)
...{
msg(contact.getFriendlyName()
+"正在输入文字。");
}


//异常时发生
publicvoidexceptionCaught(MsnMessengermessenger,Throwablethrowable)...{
msg(messenger
+throwable.toString());
msg(throwable);
}


//登录完成时发生
publicvoidloginCompleted(MsnMessengermessenger)...{
msg(messenger.getOwner().getDisplayName()
+"登录成功!");
//messenger.getOwner().setDisplayName("天天持之以恒");
}


//注销时发生
publicvoidlogout(MsnMessengermessenger)...{
msg(messenger
+"logout");
}


//收到系统广播信息时发生
publicvoiddatacastMessageReceived(MsnSwitchboardswitchboard,
MsnDatacastMessagemessage,MsnContactfriend)
...{
msg(switchboard
+"recvdatacastmessage"+message);
switchboard.sendMessage(message,
false);
}


//收到目前不能处理的信息时发生
publicvoidunknownMessageReceived(MsnSwitchboardswitchboard,
MsnUnknownMessagemessage,MsnContactfriend)
...{
//msg(switchboard+"recvunknownmessage"+message);
}


publicvoidcontactListInitCompleted(MsnMessengermessenger)...{
listContacts();
}


/***//**
*更新好友列表完成时发生
*/

publicvoidcontactListSyncCompleted(MsnMessengermessenger)...{
listContacts();
}


/***//**
*关闭一个聊天窗口时发生
*/

publicvoidswitchboardClosed(MsnSwitchboardswitchboard)...{
msg(
"switchboardStarted"+switchboard);
}


/***//**
*打开一个聊天窗口时发生
*/

publicvoidswitchboardStarted(MsnSwitchboardswitchboard)...{
msg(
"switchboardStarted"+switchboard);
}


//打印联系人
privatevoidlistContacts()...{
MsnContact[]cons
=messenger.getContactList().getContactsInList(MsnList.AL);
if(cons.length==0)
msg(
"");
else
msg(
"你现在有"+cons.length+"个联系人");
for(inti=0;i<cons.length;i++)...{
Stringpersonal
=((MsnContactImpl)cons[i]).getPersonalMessage().equals("")
?"":((MsnContactImpl)cons[i]).getPersonalMessage();
msg(cons[i].getDisplayName()
+""+cons[i].getEmail()+""
+cons[i].getStatus()+""+personal);
}

}


publicStringgetEmail()...{
returnemail;
}


publicvoidsetEmail(Stringemail)...{
this.email=email;
}


publicStringgetPassword()...{
returnpassword;
}


publicvoidsetPassword(Stringpassword)...{
this.password=password;
}


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值