Po stisku klávesy F(X) se provede test, zda je objekt již v pohybu,
potom je pozastaven, v opačném případě se inicializuje vlákno Driver
pro tento objekt a je spuštěno.
Po stisku klávesy F(X) se provede test, zda je objekt již v pohybu,
potom je pozastaven, v opačném případě se inicializuje vlákno Driver
pro tento objekt a je spuštěno.
Když se s objektem pohne a je zavolána tato metoda, pozastaví se vlákno a čeká,
než vlákno které se stará o vykreslování zavolá metodu objectPainted().
Vnitřní třída, která implementuje MouseListener (dědí od MouseAdapter)
a zajišťuje, že kliknutí nad touto komponentou (JLabelem) bude posláno dál
jestliže se uskutečnilo nad nějakým MoveablePicturem.
Volá rovnou super.paint,a poté "řekne" všem PaintControled objektům,
že byly nakresleny, to se porvede voláním metody objectPainted() nad jejich paintControlery.
Vykreslí obrázek na pozadí a potom volá metodu paint(Graphics g) nad všemi svými
MoveablePictures a nad každým jeho PaintControlerem ještě volá objectPainted();
Metoda processEvent, kterou bude volat zejména předek objektu,
v našem případě PictureLabel, provede zavolání metody actionPerformed(...) nad všemi
zaregistrovanými posluchači.
TestLabel ukazuje použití připravených tříd PictureLabel a MoveablePicture
Všiměte si, jak se v metodě initPictures() registruje posluchač udalostí,
která reprezentuje kliknutí na MoveablePicture.