Eu só preciso mudar o texto de um botão quando clicar nele. Mas não posso somente colocar o comando de setText no evento click, pq nesse evento ocorre uma ordenação de dados que demora alguns minutos isso faz com que a alteraçao no texto do button nao seja mostrada no momento do click. Então como faço para alterar o texto? É preciso criar uma Thread né?
Tentei das duas formas: extends Thread e implements Runnable, como exemplificado no artigo. Coloquei o start() na primeira linha do evento click do botão, mas não funcionou.
private void jButtonExecutarActionPerformed(java.awt.event.ActionEvent evt) {
//jButtonExecutar.setText("Ordenando...");
MudaTextojButton mtb = new MudaTextojButton();
Thread t = new Thread(mtb);
t.start();
//codigo da ordenaçao...
}
N
nojiruca
Descobri o problema… olha o absurdo: eu estava criando um novo objeto MainForm() no run(), assim as alteraçoes jamais ficariam visíveis no MainForm real :-o
R
rafaeskero
Olá!
Estou tentando fazer um trabalho de Sistemas Operacionais onde o professor pede pra fazer 10 usuários depositando R$ 1.000 em uma conta mas essa mesma conta não pode chegar aos exatos R$10.000 tem que chegar a ( R$ 9.998 Por exemplo), e eu não tenho a minima ideia de como se faz isso em java usando Threads.
Ele também pede para não proteger a variável global, e não pode chegar a um estado consistente.
Eu programei isto em outra linguagem, mas ãcho que não estou atendendo os requisitos necessários.
Alguém poderia me ajudar?
ViniGodoy
Não é o setText que deve ficar em outra thread. É o código de ordenação. Aliás, o setText não pode ficar em outra thread. Todo código de atualização de tela deve rodar na thread do Swing.