java GUI blokkol

Fórumok

Sziasztok!

egy társasjáték lenne a feladat, az a problémám, hogy ahogy fut a program, és megjelenik a GUI, az blokkol. Itt több lehetőséget találtunk ki a kiküszöbölésére, a kérdésem, hogy Szerintetek mi a legjobb megoldás?
valahogy úgy kéne megoldani a dolgot - szerintem - hogy van egy vezérlő osztály, az példányosit egy gui-t, ugy, hogy ne blokkoljon, meg itt hoznám létre - gondolom - azt az osztályt, ami majd hálózaton küldi el a másik játékosnak, hogy mi történik.
Hogyan érdemes ezt megcsinálni?
köszi

Hozzászólások

Szia!

Mit értesz az alatt, hogy a GUI blokkol?

Olvass utána a Java Threadingnek (meg úgy általában a többszálúságnak), aztán berátközz össze a SwingWorker osztállyal

"A fejlesztot azert fizetik, hogy oldja meg a problemat. Ez egy kemeny szakma." - Chain-Q

csak nem a penteki java zhra gyakorolsz? ;)

Oké, nagyon az alapok. Event dispatcher szálból time consuming nem GUI-t babráló dolgot ne csinálj, mert akkor blokkolódni fog a grafikus felület. Erre a megoldás egy külön szál indítása, amely a befejeztével rajzol a gui-ra. Csakhogy, gui komponenst csak az event dispatcher szálból használhatsz (label.setText() és társai), különben szép nagy Exception-t kasz.

Tehát a megoldás, hogy csinálsz egy új Runnable-t, és azt bedobod az event dispatcher thread queue-jába. Ezt a SwingUtilities.invokeLater() vagy invokeAndWait() metódusával teheted meg.

tehát nyugodtan csinálj több szálat, csak figyelj a dead lockokra, és a gui komponenseket a fentek szerint bizgeráld.