JTextArea - wyświetlanie w pętli

0

Witam,

mam problem z wyświetlaniem zawartości JTextArea w pętli. Każde przejście pętli dopisuje na końcu tekst, który ukazuje się dopiero po przejściu całej pętli, a ja chciałbym, aby każda linia pokazywała się od razu. Czy trzeba użyć tu wielowątkowości ? Jeżeli tak to nie piszcie jak to zrobić bo jeszcze się tego nie uczyłem.

0
  1. nie możesz tego robić (tej pętli) w wątku gui .. (czyli np w actionListenerze)
  2. jeśli robisz to już w swoim wątku (nie gui) przez setText(text+costam) lub append czytając z pliku, to raczej po prostu idzie to za szybko, żeby swing zdążył zareagować pomiędzy wstawieniami.
0

Pętla jest w ActionListener.

0

to ją odpal w osobnym wątku

0

Ok, dzięki za naprowadzenie, ale tak jak pisałem, wątków jeszcze nie umiem.

0

Dzięki za link ale korzystam już z tego tutoriala.

0

Bawiąc się w GUI przeskoczyłeś za daleko...
Całe "Trails Covering the Basics" powinieneś przeczytać w kolejności od góry do dołu.
wielowątkowość jest opisana wyżej niż gui... w dziale "Essential Java Classes" > "Concurrency"

0

GUI miałem w szkole i tylko dlatego z tym jestem dalej.

0

daj w tym action listenerze takie coś:

public void actionPerformed(ActionEvent e)
{
SwingWorker.InvokeLater(new Runnable()
{
public void run()
{
// TODO: tutaj zrób tą pętle  - appenda tego co tam chcesz to textArea do którego chcesz znaczy 
}
}
}

LUUUUB samego appenda (i to chyba prędzej zadziała niż powyższy kod) w tej Twojej pętli daj właśnie jako

SwingWorker.InvokeLater(new Runnable(){ 
public void run()
{
//TODO: Tutaj wpisz kod który odpowiada za dodawanie tekstu
}});

powinno działać. (chociaż teraz powątpiewam - nie korzystam z SwingWorkera, chociaż wiem, że powinno się to właśnie przez niego budować GUI itp - nie jestem pewny po prostu)

a jak nie to osobny wątek rób. To jest bardzo podobne i łatwe zobacz sam. Zrob takie cos:

new Thread(new Runnable(){
public void run()
{
//TODO: Wepchnij tutaj swoją całą tą pęte z appendami
}
}).start();

to drugie już na pewno zadziała :)
nie omiń tego startu na końcu - to nie jest błąd, tak ma być :)

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