BlueJ - Oboznámenie sa s modelovacím nástrojom
Ciele
  1. Oboznámiť sa s prostredím BlueJ http://www.bluej.org/.
  2. Naučiť sa vytvárať inštancie objektov z pripravených tried.
  3. Naučiť sa volať metódy na vytvorených objektoch.
  4. Oboznámiť sa so základnými dátovými typmi jazyka Java.
  5. Oboznámiť sa so základnými termínmi OOP.
Úvod
Na prvom cvičení sa oboznámite s modelovacím nástrojom BlueJ. V nasledujúcich štyroch cvičeniach ho využijete na programovanie jednoduchých úloh. BlueJ je vývojové prostredie navrhnuté na výučbu objektovo orientovaného programovania v jazyku Java. Umožňuje navrhnúť diagram tried vyvíjanej aplikácie v zjednodušenej verzii jazyka UML a následne definovať vlastnosti tried a implementovať ich metódy. Jeho výhoda spočíva v grafickom zobrazení závislostí tried a ich hierarchie. Taktiež umožňuje interaktívne vytváranie inštancií tried a volanie ich metód.
Postup
  1. V prvom kroku sa zoznámite s prostredím BlueJ. Otvoríte v ňom pripravený projekt, v ktorom sa nachádza niekoľko tried reprezentujúcich grafické tvary a následne v ňom vytvoríte svoju prvú inštanciu.
    Úloha:  Stiahnite súbor project_01.zip, ktorý obsahuje projekt pre toto cvičenie. Zip súbor rozbaľte a otvorte projekt v prostredí BlueJ.
    Poznámka:  Pri otváraní projektu v BlueJ stačí vybrať samotný zip balíček. Prostredie BlueJ rozbalí balíček samo.
    Projekt obsahuje triedy, ktoré reprezentujú grafické objekty. Sú to:
    • TriangleRightAngle - pravouhlý trojuholník
    • TriangleEqualArm - rovnoramenný trojuholník (presný anglický názov rovnoramenného trojuholníka je isisceles triangle.)
    • Diamond - kosoštvorec
    • Rectangle - obdĺžnik
    • SnowFlake - spojnice stredov strán štvorca a uhlopriečok štvorca
    V projekte sa nachádzajú ešte ďalšie dve triedy. Podrobnejšie budú opísané v nasledujúcom cvičení. Sú to:
    • Color - trieda obsahuje základnú paletu farieb, ktoré je možné použiť na vykreslenie grafických objektov
    • Canvas - je plátno, na ktoré je možné vykresliť grafické objekty
    Vami otvorený projekt by mal zodpovedať nasledujúcemu obrázku:
    Úloha:  Vytvorte novú inštanciu diamantu. Pomenujte ju diamond. Parametre vyplňte nasledovne:
    • int x = 10
    • int y = 10
    • int diagonal = 15
    • Color color = Color.RED
    • boolean visible = true
    Pri výtváraní inštancie najskôr pravým tlačidlom kliknite na triedu Diamond a vyberte konštruktor obsahujúci nasledujúce parametre:
    • int x a int y - [x,y] pozícia diamantu na plátne.
    • int diagonal - veľkosť dlhšej uhlopriečky diamantu.
    • Color color - farba výplne trojuholníka. Musí byť v tvare Color.RED.
    • boolean visible - premenná, ktorá určuje, či sa diamant vykreslí hneď po vytvorení, alebo až po zavolaní metódy show()
    Potom zadajte vyššie uvedené hodnoty a potvrdte tlačidlom OK.
    Poznámka:  Na palete sa bod [0,0] nachádza v ľavom hornom rohu a súradnice narastajú smerom nadol a doprava.
    Poznámka:  Celú paletu dostupných farieb si môžete prezrieť otvorením triedy Color (trieda je enumeračný typ, čo bude vysvetlené neskôr) v editore (dvojklik na triedu Color).
    Úloha:  Skontrolujte, či sa vám zobrazil nasledujúci obrázok:
  2. Každý bod, ktorý je možné vykresliť na plátno je reprezentovaný štvorcom o veľkosti 10x10 pixelov. (Implementované na účely cvičenia.) Všetky grafické objekty sú vyskladané pomocou takýchto štvorčekov. V predošlom kroku ste vytvorili grafický objekt, v tomto kroku sa naučíte ako grafický objekt zmazať a opäť vykresliť, presunúť, zmeniť veľkosť a farbu.
    Úloha:  Pravým tlačidlom myši kliknite na vytvorenú inštanciu (červený obdĺžnik s názvom diamond) v časti object bench (spodnej časti okna) vývojového prostredia BlueJ a zavolajte metódu hide().
    Úloha:  Diamant opäť zobrazte zavolaním metódy show().
    Úloha:  Posuňte vytvorený diamant na novú pozíciu [20,15] pomocou volania metód:
    • moveLeft()
    • moveRight()
    • moveUp()
    • moveDown()
    Diamant sa vždy presunie o jeden štvorček v požadovanom smere. Aktuálny stav členských premenných si môžete zobraziť pomocou okna Object inspector-a, ktorý zobrazíte dvojklikom na objekt nachádzajúci sa v object bench-i alebo kliknutím pravého tlačidla na objekt a výberom položky Inspect.
    Úloha:  Zmeňte veľkosť diamantu zmenou veľkosti diagonály na hodnotu 30 zavolaním metódy setDiagonal().
    Úloha:  Zmeňte pozíciu diamantu z aktuálnej pozície na pozíciu [30,5] pomocou metód setX() a setY().
    Poznámka:  Premenné [x,y] určujú pozíciu ľavého horného rohu štvorca, ktorým je možné diamant opísať.
  3. Vyskúšajte si vytváranie inštancií ostatných tried, ktoré reprezentujú grafické objekty a volanie ich metód.
    Úloha:  Pokúste sa vytvoriť nasledujúci obrázok:
    Poznámka:  Grafické objekty sa navzájom prekresľujú, preto je na prekrytom objekte potrebné zavolať metódu show() pre jeho opätovné správne zobrazenie.
    Poznámka:  Objekt TriangleRightAngle vyžaduje ako parameter umiestnenie pravého uhla. Možné hodnoty sú TriangleRightAngle.LEFT alebo TriangleRightAngle.RIGHT. Namiesto týchto konštánt však môžete použiť aj hodnotu 0 pre "ľavý" pravouhlý trojuholník a hodnotu 1 pre "pravý" pravouhlý trojuholník.
  4. Vymažte projekt z disku a zrušte všetky vami vytvorené nastavenia v prostredí BlueJ a NetBeans!
Doplňujúce úlohy
$Id$