在做我们的msn前先要准备两个包jml-1.0b3.jar,cindy.jar 下面的代码已经是我改版后的了,原来的代码也不知道到那里去了 大家凑乎下看吧 这版本是我改成有界面版的核心 (靠 csdn改版了怎么把我下面的代码搞没了啊) public class MsnCore extends MsnAdapter { private MsnMessenger messenger = null; private String mail = null; private String password = null; private MsnUserStatus status = null; public MsnCore(String mail, String password, MsnUserStatus status) { this.mail = mail; this.password = password; this.status = status; } /** * Creates a new instance of msntest */ public void start() { messenger = MsnMessengerFactory.createMsnMessenger(mail, password); messenger.setSupportedProtocol(new MsnProtocol[]{MsnProtocol.MSNP12}); messenger.getOwner().setInitStatus(status); messenger.addListener(this); messenger.login(); } private static void msg(Object obj) { SimpleDateFormat sdf = new SimpleDateFormat("MM-dd HH:mm"); if (obj instanceof Throwable) System.err.println("[" + sdf.format(new Date()) + "] " + obj); else System.out.println("[" + sdf.format(new Date()) + "] " + obj); } public void contactListInitCompleted(MsnMessenger msnMessenger) { super.contactListInitCompleted(msnMessenger); createMainShell(this); } public void loginCompleted(MsnMessenger messenger) { System.out.println("success"); } protected void createMainShell(MsnCore msn) { try { Display display = new Display(); MainShell mainShell = new MainShell(display, SWT.SHELL_TRIM, msn); mainShell.setLocation(Display.getCurrent().getClientArea().width / 2 - mainShell.getSize().x / 2, Display.getCurrent() .getClientArea().height / 2 - mainShell.getSize().y / 2); mainShell.open(); mainShell.layout(); while (!mainShell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } this.logout(messenger); Thread.currentThread().destroy(); } catch (Exception e) { e.printStackTrace(); } } public void exceptionCaught(MsnMessenger msnMessenger, Throwable throwable) { super.exceptionCaught(msnMessenger, throwable); System.out.println("error"); } public String getMail() { return mail; } public void setMail(String mail) { this.mail = mail; } public MsnMessenger getMessenger() { return messenger; } public void setMessenger(MsnMessenger messenger) { this.messenger = messenger; } public MsnUserStatus getStatus() { return status; } public void setStatus(MsnUserStatus status) { this.status = status; } }