Fala ae pessoal
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?