Kezdőoldal » Számítástechnika » Programozás » Erre tudtok megoldást (JAVA)?

Krisz2 kérdése:

Erre tudtok megoldást (JAVA)?

Figyelt kérdés
van egy progim ami kirajzol egy kört és azt szeretném hogy ha megnyomom az egyik billentyűt(nem tartom lent) akkor növelje mondjuk 10-el a kör x koordinátáját de ne egyből hanem minden növelésnél rajzolódjon ki újra a kör, ez eddig nem is nehéz egy ciklussal megoldható csak az a baj hogy túl hamar lefut a ciklusnem lehet látni, az agyhullám: JAVA könyvben azt a megoldást láttam hogy a ciklus végére rakjak be egy thread.sleep()-et , ez nekik működött viszont nekem úgy néz ki hogy megnyomom a gombot addig vár a program amíg le nem telik a sleepnek megadott idő aztán a ciklus úgy fut tovább hogy nem is veszi figyelembe a sleep-et

2013. jún. 16. 16:44
 1/4 anonim ***** válasza:
A sleep előtt/után nem ártana egy újra rajzolást is kikényszeríteni és máris látszani fog. :)
2013. jún. 16. 16:57
Hasznos számodra ez a válasz?
 2/4 A kérdező kommentje:
-_- van
2013. jún. 16. 17:06
 3/4 A kérdező kommentje:
Az a baj h ha beiktatok egy Syistem.out.println()-t akkor látszik hogy működik a dolog csak a reapint nem hívódik meg csak egyszer
2013. jún. 16. 17:09
 4/4 anonim ***** válasza:

A probléma az, hogy nem mindegy, milyen szálból hívod a GUI-t. Mert a GUI is egy külön szál és a főprogram is.


Valami ilyesmi a megoldás úgy emlékszem:


while (ciklusfeltételed) {

SwingUtilities.invokeLater(new Runnable() {

@Override

public void run() {

// ide jön rajzoló metódus hívása

} // run

}); // runnable+invokelater

Thread.sleep(1000);

} // while


Ez azt csinálja, hogy megüzeni a GUI kezelő szálnak, hogy rajzoljon, nem várja meg a rajzolást. A GUI ettől a metódustól függetlenül elvégzi, és a sleep nem a GUI szálban fut le így, tehát a GUI nem fog lefagyni.


Remélem jót írtam. :)

2013. jún. 16. 19:20
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!