Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

EventQueue.invokeLater - czy to jest potrzebne ?

140 views
Skip to first unread message

dziobacz

unread,
Mar 13, 2009, 3:45:53 PM3/13/09
to
Mam książkę "Java podstawy wydanie VIII" i jak teraz czytam o
tworzeniu aplikacji okienkowych to autor pisze żeby pisać (nie
wyjaśniając zbytnio dlaczego):

public static void main(String[] args)
{
EventQueue.invokeLater(new Runnable()
{
public void run()
{
..........................................
}
});
}


I tak jest w każdym jego kodzie aplikacji okienkowej.

Tak się normalnie pisze w javie tworząc jednowątkowe aplikacje
okienkowe czy się to pomija i wykorzystuje tylko jak tworzymy
aplikację wielowątkową ?

Piotr Chowaniec

unread,
Mar 13, 2009, 5:21:25 PM3/13/09
to
Witam,

> Tak się normalnie pisze w javie tworząc jednowątkowe aplikacje
> okienkowe czy się to pomija i wykorzystuje tylko jak tworzymy
> aplikację wielowątkową ?

Poczytaj o Event Dispatch Thread. Trochę na ten temat jest tutaj:
http://java.sun.com/docs/books/tutorial/uiswing/concurrency/index.html

Message has been deleted

Jarek Kucypera

unread,
Mar 14, 2009, 6:01:54 AM3/14/09
to
Użytkownik dziobacz napisał:
> Czyli jak rozumiem jak korzystam ze Swing to program może mieć kilka
> wątków i EventQueue.invokeLater(new Runnable() sporządza harmonogram
> wywołań tych wątków ?

Że co ;) Nie rozumiem, co miałeś na myśli, ale brzmi imponująco ;)
A prawda jest bardziej banalna, obsługą gui zajmuje się jeden wątek,
który kręci tzw. pętlą zdarzeń.
Większość api Swinga może być wołane tylko z tego "wątku gui".
Dlatego jeśli zapragniesz w innym wątku porobić coś z gui, to nie możesz
wprost wołać API, tylko musisz Runnable'a przekazać do wątku gui, który
w wolnej chwili go wywoła.

--
J.K.

dziobacz

unread,
Mar 14, 2009, 6:35:44 AM3/14/09
to

Ok dzieki ;)

0 new messages