Java MSN Messenger Library - duvidas

Olá estou desenvolvendo um aplicativo chat que se comunica com o msn, o problema é que tenho pouca experiencia com Java e peguei um exemplo e não consigo expandir, peço ajuda a programadores mais experientes com a linguagem. Minha duvida é a seguinte: Eu quero adicionar um JOption.showInputDialog que fica mandando conversas e um JOption.showMessageDialog que pega as conversas enviadas, mas não consigo fazer isso, sempre que mando mensagem só vai uma vez, dae tenho que reiniciar a aplicação para mandar outra linha, estou mandando as classes para que me ajudem a analisar.

package javamessenger;

import net.sf.jml.MsnMessenger;
import net.sf.jml.MsnProtocol;
import net.sf.jml.MsnUserStatus;
import net.sf.jml.impl.MsnMessengerFactory;

public class BasicMessenger {

public static HelloMessenger MyMSN = new HelloMessenger();

	private String email;
    private String password;

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
    public void start() {
        
       MsnMessenger messenger = MsnMessengerFactory.createMsnMessenger(email,password);
       messenger.setSupportedProtocol(new MsnProtocol[] { MsnProtocol.MSNP12 });
       messenger.getOwner().setInitStatus(MsnUserStatus.ONLINE);
       messenger.setLogIncoming(true);
       messenger.setLogOutgoing(true);           
       MyMSN.initMessenger(messenger,"olá");
       messenger.login();
     
    }
   

    public static void main(String[] args)  {       
        BasicMessenger messenger =new BasicMessenger();
        messenger.setEmail("meuLogin@hotmail.com");
        messenger.setPassword("minhaSenha");
        messenger.start() ;
    }
}

classe HelloMessenger

package javamessenger;

import net.sf.jml.MsnContact;
import net.sf.jml.MsnList;
import net.sf.jml.MsnMessenger;
import net.sf.jml.MsnUserStatus;
import net.sf.jml.event.MsnContactListAdapter;

public class HelloMessenger extends BasicMessenger{
public MsnContact[] contacts = null;
    protected void initMessenger(MsnMessenger messenger,final String msg) {
     messenger.addContactListListener(new MsnContactListAdapter() {
       public void contactListInitCompleted(MsnMessenger messenger) {
                //get contacts in allow list
                contacts = messenger.getContactList()
                        .getContactsInList(MsnList.AL);

                for (int i = 0; i < contacts.length; i++) {
                    //don't send message to offline contact
                    if (contacts[i].getStatus() != MsnUserStatus.OFFLINE) {
                        //this is the simplest way to send text
                        
                        messenger.sendText(contacts[0].getEmail(),msg);

                        }
                    
                }
            }

        });
        
    }

}

Como desenvolvo um método para ficar enviando e recebendo mensagens???

Não sei se você ja deu uma olhada aqui: http://www.guj.com.br/posts/list/321.java#668069

Na apostila da Caelum tem um exemplo de chat.
http://downloads.caelum.com.br/apostila/caelum-java-objetos-fj11.pdf página 232

Espero ter ajudado.

Algebra… conseguiu criar um aplicativo usando o jml[url]?