package elte.java2_utikalauz5.tour; /** Ábraforgató. @link.forrásfájl {@docRoot}/../data/tour/src Forgato.java @since Java Útikalauz programozóknak */ public class Forgato extends Thread { private Abra abra; // amit forgat private volatile boolean futhat; // futhat-e még? private volatile boolean latszik; // látszik-e? public Forgato(Abra azAbra) { abra = azAbra; futhat = true; latszik = false; } public void run() { while(futhat) { // Amíg futhat, abra.forgat(); // addig forgatja az ábrát. try { if(latszik) { // Ha látszódik, akkor sleep(100); // alszik 1/10 másodpercet, } else { // ha nem, akkor vár... synchronized(this) { wait(); } } } catch(InterruptedException e) {} } } synchronized public void eltunik() { latszik = false; // az ábra eltűnik } synchronized public void elotunik() { latszik = true; // az ábra előtűnik notify(); // és elindul a várakozásból } synchronized public void vege() { // a forgatás leállítása futhat = false; if(!latszik) { // ha várakozott, akkor notify(); // meglökjük, hogy leálljon } } }