blokowanie sie JButton..

0

Witam. Mój problem wygląda następująco. Po wciśnięciu przycisku Start chcę żeby w polu TextArea wyświetliły się po kolei cyfry z odstępem czasowym. Niestety, po wciśnięciu przycisku blokuje się całe JFrame (zapewne cecha Javy) i moje pytanko brzmi jak to zrobić żeby hulało?

Kod:

public void actionPerformed(ActionEvent e) {
            
            Object zrodlo = e.getSource();
            if(zrodlo == bstart)
            {
                   for (int i=0; i<10; i++)
                {
                       tadzialanie.setText(i); //zdefiniowane wczesniej jako TextArea
                     try {

                        Thread.sleep(1000); //na sekunde

                    } catch(InterruptedException w){ }
                    

                }

            }
 
0

Uruchom to w osobnym wątku – odpalanie Sleep w wątku głównym powoduje zamrożenie całej aplikacji.

0

ok, a mniej więcej jak to uczynić?

0

dobra poszperałem poszukałem i teraz pytanko: czy cały ActionPerformer wpisać w run() w nowym wątku czy tylko

 tadzialanie.setText(i); //zdefiniowane wczesniej jako TextArea
                     try {
 
                        Thread.sleep(1000); //na sekunde
 
                    } catch(InterruptedException w){ }
0

Może użyj Timera, on jest przeznaczony do wykonywania (w niezależnym wątku) ) kodu co pewien czas

javax.swing.Timer timer = new javax.swing.Timer(1000,new ActionListener()
{
    int i = 0;
    public void actionPerformed(ActionEvent ae)
    {
	i++;
	tadzialanie.setText(""+i);
	if (i == 10)
	{
	    timer.stop();
	}
    }
});
timer.start();

1 użytkowników online, w tym zalogowanych: 0, gości: 1