<< Typ char a znakové reťazce | Obsah | Inštančné premenné >>
V súčasnosti sme už zvyknutí, že každú rozumnú aplikáciu vieme nejako ovládať aj prostredníctvom myši. Kresliaca plocha JPAZu (objekty triedy WinPane
) nie je v tomto smere výnimkou. Spracovávať myšacie udalosti (elementárne akcie vykonané myšou) kresliacej plochy vieme iba v triedach, ktoré rozširujú triedu WinPane
. Ak v takejto triede vytvoríme nasledovnú metódu, JPAZ sa postará, aby sa vykonala vždy, keď sa klikne myšou do kresliacej plochy:
Metóda onMouseClicked
má aj 3 parametre. Prostredníctvom nich nám JPAZ povie bližšie informácie o tom, čo sa stalo. Konkrétne v parametri x
dostaneme x-ovú súradnicu myši, v parametri y
y-ovú súradnicu myši a nakoniec v parametri detail
referenciu na objekt triedy MouseEvent
. Objekt triedy MouseEvent
je zaujímavý tým, že nám vie poskytnúť ďalšie informácie o tom, čo sa stalo.
Spomeňme pár najzaujímavejších metód objektov triedy MouseEvent
:
boolean isAltDown()
- true, ak pri udalosti bol kláves Alt
zatlačený
boolean isControlDown()
- true, ak pri udalosti bol kláves Ctrl
zatlačený
boolean isShiftDown()
- true, ak pri udalosti bol kláves Shift
zatlačený
int getButton()
- vráti kód tlačidla, ktorý udalosť spôsobil. Hodnoty týchto pre jednotlivé tlačidla kódov sú tieto:
MouseEvent.BUTTON1
MouseEvent.BUTTON2
MouseEvent.BUTTON3
Pozrime sa, ako by vyzerala metóda onMouseClicked
, ak by sme chceli niečo vykonať, iba vtedy ak sa kliklo ľavým tlačidlom myši a zároveň bol počas kliknutia zatlačený kláves Ctrl
:
Okrem kliknutia do kresliacej plochy existujú aj ďalšie myšacie udalosti, ktoré vie JPAZ "obslúžiť" pomocou metód so "správnym" menom a parametrami:
onMouseClicked
- pri kliknutí do plochy (vykonáva sa až vtedy, keď bolo tlačidlo myši pustené)
onMousePressed
- pri zatlačení tlačidla myši
onMouseReleased
- pri uvoľnení tlačidla myši
onMouseMoved
- pri pohybe myši v stave, kedy žiadne jej tlačidlo nie je zatlačené
onMouseDragged
- pri pohybe myši v stave, kedy niektoré jej tlačidlo je zatlačené
Všetkých 5 spomenutých metód má rovnaké predpísané parametre ako onMouseClicked
:
Zvyčajne, keď vytvoríme novú triedu, ktorá rozširuje triedu WinPane
, potrebujeme do nej pridať pár metód, ktoré niečo nakreslia. Žial, samotná kresliaca plocha (aj keď je kresliaca) veľmi kresliť nevie. Ak teda chceme niečo do kresliacej plochy nakresliť, musíme si najprv vytvoriť korytnačku, ktorou to, čo treba, nakreslíme. Aby mohla kresliť, musíme ju najprv do plochy pridať. No a po skončení kreslenia, musíme korytnačku z kresliacej plochy "vyhodiť":
<< Typ char a znakové reťazce | Obsah | Inštančné premenné >>