Class Picture

java.lang.Object
eu.pedu.lib20s.canvasmanager.Picture
All Implemented Interfaces:
ICMPaintable, ICMShape, IDirectable, IFlexible, IChangeable, IMovable, IResizable, IShape, ICopyable

public class Picture
extends java.lang.Object
implements ICMShape, IDirectable, ICopyable
Instance třídy Picture představují obrázky, které je možné načíst ze souborů nebo vytvořit z oblasti plátna.
  • Field Summary

    Fields 
    Modifier and Type Field Description
    protected int height
    Výška instance.
    protected int ID
    ID instance = pořadí vytvoření dané instance v rámci třídy.
    protected int width
    Šířka instance.

    Fields inherited from interface eu.pedu.lib20s.canvasmanager.ICMPaintable

    CM
  • Constructor Summary

    Constructors 
    Constructor Description
    Picture​(int x, int y, java.awt.Image image)
    Vytvoří nový obrázek ze zadaného obrázku - instance třídy java.awt.Image a umístí jej do počátku.
    Picture​(int x, int y, java.lang.String file)
    Přečte ze zadaného souboru obrázek, který bude kreslit na zadaných souřadnicích; pomocí úvodních hvězdiček je možno zadat, zda se daný soubor bude hledat ve složce balíčku třídy volající metody (pak musí jméno předcházet */), nebo ve složce kořenového balíčku (pak musí předcházet **/);
    Picture​(int x, int y, java.net.URL url)
    Přečte ze zadané URL adresy obrázek, který bude kreslit na zadaných souřadnicích; pomocí úvodních hvězdiček je možno zadat, zda se daný soubor bude hledat ve složce balíčku třídy volající metody (pak musí jméno předcházet */), nebo ve složce kořenového balíčku (pak musí předcházet **/);
  • Method Summary

    Modifier and Type Method Description
    Picture copy()
    Vrátí kopii daného tvaru, tj. stejný obrázek, stejně velký a stejně umístěný.
    Direction8 getDirection()
    Vrátí směr, do nějž je instance otočena.
    int getHeight()
    Vrátí výšku instance v bodech.
    java.lang.String getName()
    Vrátí název instance.
    int getWidth()
    Vrátí šířku instance v bodech.
    int getX()
    Vrátí x-ovou (vodorovnou) souřadnici pozice instance, tj. vodorovnou souřadnici levého horního rohu opsaného obdélníku.
    int getY()
    Vrátí y-ovou (svislou) souřadnici pozice instance, tj. svislou souřadnici levého horního rohu opsaného obdélníku.
    void paint​(Painter painter)
    Prostřednictvím dodaného kreslítka vykreslí obraz své instance.
    void setDirection​(Direction8 direction)
    Otočí instanci do zadaného směru.
    void setDirSize​(Direction8 direction, int width, int height)
    Otočí instanci do zadaného směru a přitom jí nastaví požadovanou výšku a šířku.
    Picture setInitialDirection​(Direction8 initialDirection)
    Nastaví zadaný směr jako výchozí směr vytvářené instance.
    void setName​(java.lang.String name)
    Nastaví nový název instance.
    void setPosition​(int x, int y)
    Přemístí instanci na zadanou pozici.
    void setSize​(int width, int height)
    Nastaví nové rozměry instance.
    java.lang.String toString()
    Vrátí textový podpis instance, tj. její řetězcovou reprezentaci.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

    Methods inherited from interface eu.pedu.lib20s.canvasmanager.ICMPaintable

    hide, show

    Methods inherited from interface eu.pedu.lib20s.geom.IChangeable

    getArea, setArea, setArea, setArea

    Methods inherited from interface eu.pedu.lib20s.geom.IMovable

    getPosition, moveDown, moveRight, setPosition, setX, setY

    Methods inherited from interface eu.pedu.lib20s.geom.IResizable

    getSize, setHeight, setSize, setSize, setWidth
  • Field Details

    • ID

      protected final int ID
      ID instance = pořadí vytvoření dané instance v rámci třídy.
    • width

      protected int width
      Šířka instance.
    • height

      protected int height
      Výška instance.
  • Constructor Details

    • Picture

      public Picture​(int x, int y, java.lang.String file)
      Přečte ze zadaného souboru obrázek, který bude kreslit na zadaných souřadnicích; pomocí úvodních hvězdiček je možno zadat, zda se daný soubor bude hledat ve složce balíčku třídy volající metody (pak musí jméno předcházet */), nebo ve složce kořenového balíčku (pak musí předcházet **/);
      Parameters:
      x - Vodorovná souřadnice levého horního rohu obrázku
      y - Svislá souřadnice levého horního rohu obrázku
      file - Název souboru, v němž je obrázek uložen
    • Picture

      public Picture​(int x, int y, java.net.URL url)
      Přečte ze zadané URL adresy obrázek, který bude kreslit na zadaných souřadnicích; pomocí úvodních hvězdiček je možno zadat, zda se daný soubor bude hledat ve složce balíčku třídy volající metody (pak musí jméno předcházet */), nebo ve složce kořenového balíčku (pak musí předcházet **/);
      Parameters:
      x - Vodorovná souřadnice levého horního rohu obrázku
      y - Svislá souřadnice levého horního rohu obrázku
      url - URL adresa obrázku
    • Picture

      public Picture​(int x, int y, java.awt.Image image)
      Vytvoří nový obrázek ze zadaného obrázku - instance třídy java.awt.Image a umístí jej do počátku.
      Parameters:
      x - Vodorovná souřadnice levého horního rohu obrázku
      y - Svislá souřadnice levého horního rohu obrázku
      image - Instance třídy java.awt.Image, která bude základem obrázku.
  • Method Details

    • getDirection

      public Direction8 getDirection()
      Vrátí směr, do nějž je instance otočena.
      Specified by:
      getDirection in interface IDirectable
      Returns:
      Instance třídy Direction8 definující aktuálně nastavený směr
    • setDirection

      public void setDirection​(Direction8 direction)
      Otočí instanci do zadaného směru. Souřadnice instance se otočením nezmění.
      Specified by:
      setDirection in interface IDirectable
      Parameters:
      direction - Směr, do nějž má být instance otočena
    • setInitialDirection

      public Picture setInitialDirection​(Direction8 initialDirection)
      Nastaví zadaný směr jako výchozí směr vytvářené instance. Tato metoda instancí neotáčí, pouze nastavují výchozí směr. Instance je implicitně považována za otočenou na sever. Má-li mít instance jiný výchozí směr, musí být nastaven před jeho prvním použitím, tj. před tím, než bude poprvé zavolána metoda setDirection(Direction8), resp. getDirection(). Smí se zavolat pouze jednou.
      Parameters:
      initialDirection - Nastavovaný výchozí směr instance
      Returns:
      Odkaz na instanci, aby bylo možno metodu zavolat jakou součást volání konstruktoru, což je doporučovaný postup
      Throws:
      java.lang.IllegalStateException - Pokud byl počáteční směr již nastaven nebo použit
    • getName

      public java.lang.String getName()
      Vrátí název instance. Výchozí podoba názvu názvu sestává z názvu třídy následovaného znakem podtržení a ID instance. Název je ale možné kdykoliv změnit.
      Returns:
      Název instance
    • setName

      public void setName​(java.lang.String name)
      Nastaví nový název instance.
      Parameters:
      name - Nový název instance
    • getX

      public int getX()
      Vrátí x-ovou (vodorovnou) souřadnici pozice instance, tj. vodorovnou souřadnici levého horního rohu opsaného obdélníku.
      Specified by:
      getX in interface IMovable
      Returns:
      Aktuální vodorovná (x-ová) souřadnice instance, x=0 má levý okraj plátna, souřadnice roste doprava
    • getY

      public int getY()
      Vrátí y-ovou (svislou) souřadnici pozice instance, tj. svislou souřadnici levého horního rohu opsaného obdélníku.
      Specified by:
      getY in interface IMovable
      Returns:
      Aktuální svislá (y-ová) souřadnice instance, y=0 má horní okraj plátna, souřadnice roste dolů
    • setPosition

      public void setPosition​(int x, int y)
      Přemístí instanci na zadanou pozici. Všechny její součásti jsou přesouvány současně jako jeden objekt. Pozice instance je přitom definována jako pozice levého horního rohu opsaného obdélníku.
      Specified by:
      setPosition in interface IMovable
      Parameters:
      x - Nově nastavovaná vodorovná (x-ová) souřadnice instance, x=0 má levý okraj plátna, souřadnice roste doprava
      y - Nově nastavovaná svislá (y-ová) souřadnice instance, y=0 má horní okraj plátna, souřadnice roste dolů
    • getWidth

      public int getWidth()
      Vrátí šířku instance v bodech. Šířka instance jsou přitom definována jako šířka opsaného obdélníku.
      Specified by:
      getWidth in interface IResizable
      Returns:
      Aktuální šířka instance v bodech
    • getHeight

      public int getHeight()
      Vrátí výšku instance v bodech. Výška instance jsou přitom definována jako výška opsaného obdélníku.
      Specified by:
      getHeight in interface IResizable
      Returns:
      Aktuální výška instance v bodech
    • setSize

      public void setSize​(int width, int height)
      Nastaví nové rozměry instance. Rozměry instance jsou přitom definovány jako rozměry opsaného obdélníku. Nastavované rozměry musí být nezáporné, místo nulového rozměru se nastaví rozměr rovný jedné.
      Specified by:
      setSize in interface IResizable
      Parameters:
      width - Nově nastavovaná šířka; šířka >= 0
      height - Nově nastavovaná výška; výška >= 0
    • copy

      public Picture copy()
      Vrátí kopii daného tvaru, tj. stejný obrázek, stejně velký a stejně umístěný.
      Specified by:
      copy in interface ICMShape
      Specified by:
      copy in interface ICopyable
      Specified by:
      copy in interface IShape
      Returns:
      Požadovaná kopie
    • paint

      public void paint​(Painter painter)
      Prostřednictvím dodaného kreslítka vykreslí obraz své instance.
      Specified by:
      paint in interface ICMPaintable
      Parameters:
      painter - Kreslítko schopné kreslit na plátno ovládané správcem
    • toString

      public java.lang.String toString()
      Vrátí textový podpis instance, tj. její řetězcovou reprezentaci. Používá se především při ladění.
      Overrides:
      toString in class java.lang.Object
      Returns:
      Název instance následovaný jejími souřadnicemi, rozměry a barvou
    • setDirSize

      public void setDirSize​(Direction8 direction, int width, int height)
      Otočí instanci do zadaného směru a přitom jí nastaví požadovanou výšku a šířku.
      Parameters:
      direction - Nově nastavovaný směr
      width - Nově nastavovaná šířka; šířka >= 0
      height - Nově nastavovaná výška; výška >= 0