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-et2013. 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. :)
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. :)
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!
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!