[AJUDA] mudar o Background do jButton varias vezes na execução do programa

2 respostas
M

Boa tarde pessoal,

Construí um programa fazendo com que um jButton fique mudando sua cor durante a execução, porem isso acontece uma única vez no laço.
Exemplo abaixo:

for(int cont=0; cont < 3; cont++){
              try {
                  Thread.sleep(1000);
              }
              catch (Exception e) {
                  e.printStackTrace();
              }
  
              if (cont==0) {
                  lTest.setBackground(Color.BLUE);
              }
              else if (cont==1) {
                  lTest.setBackground(Color.GREEN);
              }
              else if (cont==2){
                  lTest.setBackground(Color.ORANGE);
              }
          }
como mostra o exemplo, o programa executa somente quando termina o laço mostrando a cor ORANGE. Gostaria de saber como fazer com o programa mostre essa mudança de cor do botão

2 Respostas

erico_kl

for(int cont=0; cont <= 3; cont++){ ... }

T

O Swing é escrito de tal maneira que as telas não são atualizadas dentro do evento, mas sim quando ele acaba (se você usar a thread de desenho de telas do Swing, que é a mesma thread de tratamento de eventos). Portanto, ele irá mudar apenas uma vez o background.

Você precisaria usar uma outra thread, ou então um timer (como javax.swing.Timer ou java.util.Timer), para que as alterações fossem mostradas.

Criado 15 de novembro de 2009
Ultima resposta 16 de nov. de 2009
Respostas 2
Participantes 3