Botao

2 respostas
C

Opa, criei os componentes com NetBeans.

Eu gostaria de quando clicar no botao (jButton1), ele mudar o texto do botao, e logo após executar um método demorado, usei esse loopInfinito apenas para demonstraçao, oque acontece, eh que quando clico, o botao fica travado, como se estivesse segurando o botao do mouse precionado sobre ele.

O texto do botao soh muda quando ele sai do metodo, ou seja quando acabar o
metodo demorado, no caso aki o loopInfinito (sei que nunca vai sair, fiz justamente para testar se ele mudava o texto).

A pergunta eh: Ele deve mudar o texto antes de acabar o metodo loopInfinito, ou ele apenas vai mudar o texto quando terminar o metodo que trata o click?

public void actionPerformed(ActionEvent e) { if(e.getSource()==jButton1){ jButton1.setText("Parar"); loopInfinito(); } }

[color=“red”]*Editado: movido para o fórum Java Básico (Iniciantes), lembre-se de usar BBCode em suas mensagens no fórum. Jair Elton :joia:[/color]

2 Respostas

J

Você precisa colocar esse "processo demorado" em uma Thread.

Ex.:

public void actionPerformed(ActionEvent e) {
   if(e.getSource()==jButton1){
      jButton1.setText("Parar");

      Runnable run = new Runnable(){
         public void run(){
            loopInfinito();
         }
      };
      
      Thread t = new Thread(run);
      t.start();
   }
}
C
"jairelton":
Você precisa colocar esse "processo demorado" em uma Thread.

Ex.:

public void actionPerformed(ActionEvent e) {
   if(e.getSource()==jButton1){
      jButton1.setText("Parar");

      Runnable run = new Runnable(){
         public void run(){
            loopInfinito();
         }
      };
      
      Thread t = new Thread(run);
      t.start();
   }
}

Muito obrigado!!!

valew mesmo kra... so muito amador em Java!!!

E desculpa pelo codigo sem a tag... nem sabia...

falw

Criado 10 de maio de 2007
Ultima resposta 11 de mai. de 2007
Respostas 2
Participantes 2