Class Canvas

java.lang.Object
eu.pedu.lib20s.canvas.Canvas
All Implemented Interfaces:
IMovable

public final class Canvas
extends java.lang.Object
implements IMovable
Instance třídy Canvas (jedináček) slouží jako virtuální plátno, na něž mohou být kresleny jednotlivé obrazce.

Třída neposkytuje veřejný konstruktor, protože chce, aby její instance byla jedináček, tj. aby se všechno kreslilo na jedno a to samé plátno. Jediným způsobem, jak získat odkaz na instanci třídy Plátno, je volaní statické metody getInstance().

.

Aby bylo možno na plátno obyčejné kreslit a nebylo nutno kreslené objekty přihlašovat, odmazané části obrazců se automaticky neobnovují. Je-li proto při smazání některého obrazce odmazána část jiného obrazce, je třeba příslušný obrazec explicitně překreslit.

  • Field Summary

    Fields 
    Modifier and Type Field Description
    static NamedColor BACKGROUND_0
    Počáteční barva pozadí plátna.
    static int DEFAULT_STEP
    Implicitní velikost kroku - standardu plátna.
    static int HEIGHT_0
    Počáteční výška plátna v bodech.
    static int MAX_STEP
    Maximální povolená velikost kroku - standardu plátna.
    static java.awt.Point POINT_0
    Implicitní počáteční bodová pozice okna na obrazovce.
    static int WIDTH_0
    Počáteční šířka plátna v bodech.
  • Method Summary

    Modifier and Type Method Description
    void clear()
    Smaže plátno, přesněji smaže všechny obrazce na plátně.
    static void clearCanvas()
    Smaže plátno, přesněji smaže všechny obrazce na plátně.
    void drawLine​(int x1, int y1, int x2, int y2, NamedColor color)
    Zadanou barvou nakreslí na plátno úsečku se zadanými krajními body.
    void drawString​(java.lang.String text, int x, int y, NamedColor color)
    Vypíše na plátno zadaný text aktuálním písmem a zadanou barvou.
    void erase​(java.awt.Shape shape)
    Smaže na plátně zadaný obrazec, tj. překreslí jej barvou pozadí.
    void fill​(java.awt.Shape shape, NamedColor color)
    Nakreslí zadaný obrazec a vybarví jej zadanou barvou.
    NamedColor getBackgroundColor()
    Vrátí aktuální barvu pozadí.
    static int getDefaultStep()
    Vrátí implicitní velikost implicitní vzdálenosti (kroku), o kterou se instance přesune při volaní bezparametrických metod přesunu.
    int getHeight()
    Vrátí výšku plátna.
    static Canvas getInstance()
    Jediná metoda umožnující získat odkaz na instanci plátna.
    static int getStep()
    Vrátí implicitní vzdálenost (krok), o kterou se instance přesune při volaní bezparametrických metod přesunu.
    java.lang.String getTitle()
    Vrátí text v titulkové liště okna plátna.
    int getWidth()
    Vrátí šířku plátna.
    int getX()
    Vrátí vodorovnou souřadnici okna plátna.
    int getY()
    Vrátí svislou souřadnici okna plátna.
    boolean isVisible()
    Poskytuje informaci o aktuální viditelnosti okna.
    void setBackgroundColor​(NamedColor color)
    Nastaví pro plátno barvu pozadí.
    static void setDefaultStep()
    Nastaví implicitní vzdálenost (krok), o kterou se instance přesune při volaní bezparametrických metod přesunu na implicitní velikost.
    void setPosition​(int x, int y)
    Nastaví novou pozici plátna zadáním jeho nových souřadnic.
    void setSize​(int width, int height)
    Nastaví nový rozměr plátna zadáním jeho výsky a šířky.
    static void setStep​(int size)
    Nastaví implicitní vzdálenost (krok), o kterou se instance přesune při volaní bezparametrických metod přesunu.
    void setTitle​(java.lang.String title)
    Nastaví text v titulkové liště okna plátna.
    void setVisible​(boolean visible)
    Nastaví viditelnost plátna.
    static void showCanvas()
    Zobrazí okno plátna nad ostatními okny.
    java.lang.String toString()
    Vrátí string reprezentující danou instanci (její textový podpis).

    Methods inherited from class java.lang.Object

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

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

    getPosition, moveDown, moveRight, setPosition, setX, setY
  • Field Details

  • Method Details

    • getInstance

      public static Canvas getInstance()
      Jediná metoda umožnující získat odkaz na instanci plátna. Protože je však tato instance definována jako jedináček Vrací metoda pokaždé odkaz na stejnou instanci.
      Returns:
      Odkaz na instanci třídy Plátno.
    • getDefaultStep

      public static int getDefaultStep()
      Vrátí implicitní velikost implicitní vzdálenosti (kroku), o kterou se instance přesune při volaní bezparametrických metod přesunu.
      Returns:
      Implicitní velikost implicitního kroku v bodech
    • setDefaultStep

      public static void setDefaultStep()
      Nastaví implicitní vzdálenost (krok), o kterou se instance přesune při volaní bezparametrických metod přesunu na implicitní velikost.
    • getStep

      public static int getStep()
      Vrátí implicitní vzdálenost (krok), o kterou se instance přesune při volaní bezparametrických metod přesunu.
      Returns:
      Velikost implicitního kroku v bodech
    • setStep

      public static void setStep​(int size)
      Nastaví implicitní vzdálenost (krok), o kterou se instance přesune při volaní bezparametrických metod přesunu.
      Parameters:
      size - Velikost implicitního kroku v bodech;
      musí platit: 0 <= velikost <= MAX_STEP
    • clearCanvas

      public static void clearCanvas()
      Smaže plátno, přesněji smaže všechny obrazce na plátně. Tato metoda by měla být definována jako metoda instance, avšak protože je instance jedináček, byla metoda pro snazší dostupnost definovaná jako metoda třídy, aby nebylo potřeba před žádostí o smazání plátna vytvářet jeho instanci.
    • showCanvas

      public static void showCanvas()
      Zobrazí okno plátna nad ostatními okny.
    • getBackgroundColor

      public NamedColor getBackgroundColor()
      Vrátí aktuální barvu pozadí.
      Returns:
      Nastavena barva pozadí
    • setBackgroundColor

      public void setBackgroundColor​(NamedColor color)
      Nastaví pro plátno barvu pozadí.
      Parameters:
      color - Nastavovaná barva pozadí
    • getTitle

      public java.lang.String getTitle()
      Vrátí text v titulkové liště okna plátna.
      Returns:
      Text v titulkové liště okna plátna
    • setTitle

      public void setTitle​(java.lang.String title)
      Nastaví text v titulkové liště okna plátna.
      Parameters:
      title - Nastavovaný text v titulkové liště okna plátna
    • getX

      public int getX()
      Vrátí vodorovnou souřadnici okna plátna.
      Specified by:
      getX in interface IMovable
      Returns:
      Vodorovná souřadnice okna plátna
    • getY

      public int getY()
      Vrátí svislou souřadnici okna plátna.
      Specified by:
      getY in interface IMovable
      Returns:
      Svislá souřadnice okna plátna
    • setPosition

      public void setPosition​(int x, int y)
      Nastaví novou pozici plátna zadáním jeho nových souřadnic.
      Specified by:
      setPosition in interface IMovable
      Parameters:
      x - Nova vodorovná souřadnice okna plátna
      y - Nová svislá souřadnice okna plátna
    • getWidth

      public int getWidth()
      Vrátí šířku plátna.
      Returns:
      Aktuální šířka plátna v bodech
    • getHeight

      public int getHeight()
      Vrátí výšku plátna.
      Returns:
      Aktuální výška plátna v bodech
    • setSize

      public void setSize​(int width, int height)
      Nastaví nový rozměr plátna zadáním jeho výsky a šířky.
      Parameters:
      width - Nova šířka plátna v bodech
      height - Nová výška plátna v bodech
    • isVisible

      public boolean isVisible()
      Poskytuje informaci o aktuální viditelnosti okna. Nicméně i viditelná okna mohou být zakryta jinými okny.
      Returns:
      Je-li okno viditelné, vrátí true, v opačném případě vrátí false
    • setVisible

      public void setVisible​(boolean visible)
      Nastaví viditelnost plátna.
      Parameters:
      visible - true má-li být aplikační okno viditelné, jinak false
    • clear

      public void clear()
      Smaže plátno, přesněji smaže všechny obrazce na plátně.
    • drawLine

      public void drawLine​(int x1, int y1, int x2, int y2, NamedColor color)
      Zadanou barvou nakreslí na plátno úsečku se zadanými krajními body.
      Parameters:
      x1 - x-ová souřadnice počátku
      y1 - y-ová souřadnice počátku
      x2 - x-ová souřadnice konce
      y2 - x-ová souřadnice konce
      color - Barva úsečky
    • drawString

      public void drawString​(java.lang.String text, int x, int y, NamedColor color)
      Vypíše na plátno zadaný text aktuálním písmem a zadanou barvou.
      Parameters:
      text - Zobrazovaný text
      x - x-ová souřadnice textu
      y - y-ová souřadnice textu
      color - Barva, kterou se zadaný text vypíše
    • erase

      public void erase​(java.awt.Shape shape)
      Smaže na plátně zadaný obrazec, tj. překreslí jej barvou pozadí. Obrazec však nadále existuje, pouze již není vidět.
      Parameters:
      shape - Obrazec, který má být smazán
    • fill

      public void fill​(java.awt.Shape shape, NamedColor color)
      Nakreslí zadaný obrazec a vybarví jej zadanou barvou.
      Parameters:
      shape - Kreslený obrazec
      color - Barva výplně
    • toString

      public java.lang.String toString()
      Vrátí string reprezentující danou instanci (její textový podpis). Obsahuje název třídy, pozici a rozměr okna a barvu pozadí. Používá se především při ladění.
      Overrides:
      toString in class java.lang.Object
      Returns:
      Řetězcová reprezentace dané instance