Exemplo com thread

Fala ae pessoal :grin:

Estou fazendo uma consulta em um webservice, e antes q ele começe a consulta quero mudar o texto do botão “Testar conexao”, mas ele só muda depois que o método de consulta ao webservice retorna uma resposta, sei que terei que usar threads, mas como ficaria? Preciso de um exemplo, tentei usando as dicas deste tópico http://www.portaljava.com/home/modules.php?name=Forums&file=viewtopic&t=39851&highlight=thread mas não consegui


    Component frame = null;
    jButton2.setText("Conectando...");
    ConsultaWS ws = new ConsultaWS();
    jButton2.setText("Aguardando resposta...");
    if(ws.Status()) {        
        JOptionPane.showMessageDialog(frame, "Conexão efetuada com sucesso!");
    }else{
        JOptionPane.showMessageDialog(frame, "Não foi possível conectar!");
    }
    jButton2.setText("Testar conexao");  

Obrigado!

Ola,

Isto é tranquilo de fazer… olha só o exemplo…

JButton okButton = ...//instancia o botao, coloca ele num panel qq... ... okButton.setText("Testar Conexao"); okBUtton.addActionPerformed(new ActionListener(){ public void actionPerformed(ActionEvent e){ new Thread(){ public void run(){ setText("Aguardando responsta..."); ConsultaWS ws = new ConsultaWS(); if(ws.Status()) { JOptionPane.showMessageDialog(frame, "Conexão efetuada com sucesso!"); }else{ JOptionPane.showMessageDialog(frame, "Não foi possível conectar!"); } setText("Testar Conexao"); } }.start(); } });

Fncionou Bruno! Muito obrigado, ficou assim:


    new Thread() {
        public void run() {     
            Component frame = null;
            jButton2.setText("Conectando...");
            ConsultaWS ws = new ConsultaWS();
            jButton2.setText("Aguardando resposta...");
            if(ws.Status()) {        
                JOptionPane.showMessageDialog(frame, "Conexão efetuada com sucesso!");
            }else{
                JOptionPane.showMessageDialog(frame, "Não foi possível conectar!");
            }
            jButton2.setText("Testar conexao");
        }
    }.start();

Agora, sabe me explicar o que ele faz para atualizar o botão antes?
Ele faz uma execução separada? Por isso que atualiza antes?