Olá,
Em um aplicativo desktop, tenho a classe inicial com o jButton de nome btnSincronizar. Após clicar nele, é chamada outra classe que implementa runnable de nome SincronizarDados. Preciso que assim que finalize o processo desta classe chamada, o botão volte a ficar ativo e o text volte ao que era: “Sincronizar”.
[code]public class Principal extends javax.swing.JFrame {
public Principal() {
setExtendedState(MAXIMIZED_BOTH);
initComponents();
}
…
private void initComponents() {
jFrame1 = new javax.swing.JFrame();
…
btnSincronizar = new javax.swing.JButton();
…
public JButton getBtnSincronizar() {
return btnSincronizar;
}
public void setBtnSincronizar(JButton btnSincronizar) {
this.btnSincronizar = btnSincronizar;
}
…
private void btnSincronizarActionPerformed(java.awt.event.ActionEvent evt) {
SincronizarDados sincronizarDados = new SincronizarDados();
Thread threadSincronizarDados = new Thread(sincronizarDados);
threadSincronizarDados.start();
this.btnSincronizar.setText(“Sincronizando”);
this.btnSincronizar.setEnabled(false);
}
[/code]
[code]public class SincronizarDados implements Runnable {
…
@Override
public void run() {
atualizaTabelaClientes();
}
…
public void atualizaTabelaClientes() {
try {
ProgressMonitor pm = new ProgressMonitor(null, "Iniciando...", "Inicializando sincronização dos dados...", 0, 0);
ARRAYOFSTRUCTCLI resultClientes = listaclientes(Acesso.getInstance().getCodigo(), "", "", "", "", "");
…
[/code]
Como fazer para voltar o JButton ao que era antes? Não funcionou quando fiz da forma abaixo, por se tratar de thread acredito apareceu rapidamente “Soncronizando” e antes da rotina chamada terminar já voltou para “Sincronizar” e a habilitação do botão:
private void btnSincronizarActionPerformed(java.awt.event.ActionEvent evt) {
this.btnSincronizar.setText("Sincronizando");
this.btnSincronizar.setEnabled(false);
SincronizarDados sincronizarDados = new SincronizarDados();
Thread threadSincronizarDados = new Thread(sincronizarDados);
threadSincronizarDados.start();
this.btnSincronizar.setText("Sincronizar");
this.btnSincronizar.setEnabled(true);
}