
Java, Thread.sleep()
Dobrý den,
prosím vás, co se zhruba stane když v Jave zavolám Thread.sleep(1000)?
Mám jednoduchý program, který vytvoří okno a v něm jedno tlačítko. Plán byl takový, že při stisknutí tlačítka se změní jeho obrázek, pak se vteřinu počká a opět se změní jeho obrázek.
Ale program se chová se tak, že při stisknutí tlačítka se vteřinu čeká a pak se na tlačíko nastaví až ten druhý obrázek.
public void actionPerformed(ActionEvent e) {
tlacitko.setIcon(img2);
try {
Thread.sleep(1000);
}
catch (Exception ee) {
System.out.format("Vzbudilo nas to brzo%n");
}
tlacitko.setIcon(img1);
}
Jak tedy docílit toho, aby se tlačítko změnilo, pak program počkal a znovu se měnilo. Prostě aby tu změnu postřehlo lidské oko.
Předem díky za pomoc.
a proč to cpeš sem, to musí být nový thread, to že napíšeš Thread.sleep ještě neznamená že trhreaduješ.
Pomocí čeho tedy můžu program na chvilku pozastavit?
zkoušel jsem:
ale vysledek je úplně stejný, jako při použití Thread.sleep();
je to velice VELICE velice (až na to, že je to změna obrázku ne posun obrázku) tomu co jsme tu řešili před pár desitkama minut: http://pc.poradna.net/q/view/1016574-java-proces-b ar-laguje
Thread.sleep ano, ale OPRAVDU v novém threadu ne v události tlačítka. Tam se bude jen startovat thread, který bude vyměňovat obrázky a ve kterém tedy muže být to sleep.
Díky, funguje.