public class ObsluhaUdalostí extends Object
Trieda obsluhy udalostí slúži na obsluhu rozmanitých udalostí. Napríklad: akcie myši, klávesnice, voľby položky ponuky, vymazania alebo prekreslenia sveta… Keď chcete, aby aplikácia vytvorená s podporou programovacieho rámca GRobot poskytovala funkcionalitu spojenú s klávesnicou, myšou a podobne, je potrebné nasledujúcim spôsobom vytvoriť inštanciu tejto triedy slúžiacej na obsluhu udalostí, pričom stačí uviesť tie metódy (reakcie), ktoré plánujete využiť:
newObsluhaUdalostí() {// Časovač@Overridepublicvoidtik() {}// Klávesnica@OverridepublicbooleanzmenaFokusu(booleanvpred) {returntrue; }@OverridepublicvoidstlačenieKlávesu() {}@OverridepublicvoiduvoľnenieKlávesu() {}@OverridepublicvoidzadanieZnaku() {}// Myš@Overridepublicvoidklik() {}@OverridepublicvoidstlačenieTlačidlaMyši() {}@OverridepublicvoiduvoľnenieTlačidlaMyši() {}@OverridepublicvoidpohybMyši() {}@OverridepublicvoidťahanieMyšou() {}@OverridepublicvoidrolovanieKolieskomMyši() {}// Rozhranie (položky, tlačidlá, skratky…)@OverridepublicvoidvoľbaPoložkyPonuky() {}@OverridepublicvoidvoľbaKontextovejPoložky() {}@OverridepublicvoidvoľbaTlačidla() {}@OverridepublicvoidvoľbaSystémovejIkony() {}@OverridepublicvoidvoľbaSystémovejPoložky() {}@OverridepublicvoidaktiváciaOdkazu() {}@OverridepublicvoidklávesováSkratka() {}@OverridepublicvoidzmenaPosunuLišty() {}@OverridepublicvoidťahanieSúborov() {}@OverridepublicvoidpustenieSúboru(Stringsúbor) {}@OverridepublicvoidťahanieUkončené(javax.swing.JComponentzdroj,java.awt.datatransfer.Transferableúdaje,intakcia) {}// Prekresľovanie@Overridepublicvoidprekreslenie() {}@Overridepublicvoidvymazanie() {}@Overridepublicvoiddokreslenie() {}// Sekvencia@Overridepublicvoidsekvencia(intkódSpracovania,Objectzdroj,Objectcieľ,longstav,longcelkovo) {}// Animácia@OverridepublicvoidzastavenieAnimácie(Obrázokobrázok) {}// Okno@OverridepublicvoidaktiváciaOkna() {}@OverridepublicvoiddeaktiváciaOkna() {}@Overridepublicvoidmaximalizovanie() {}@Overridepublicvoidminimalizovanie() {}@Overridepublicvoidobnovenie() {}@OverridepublicvoidzobrazenieOkna() {}@OverridepublicvoidskrytieOkna() {}@OverridepublicvoidpresunutieOkna() {}@OverridepublicvoidzmenaVeľkostiOkna() {}@Overridepublicvoidotvorenie() {}@Overridepublicbooleanzavretie() {returntrue; }// Alternatíva: zatvorenie()// Ukončenie aplikácie@Overridepublicvoidukončenie() {}// Konfigurácia@OverridepublicbooleankonfiguráciaZmenená() {returnfalse; }@OverridepublicvoidčítajKonfiguráciu(Súborsúbor) {}@OverridepublicvoidzapíšKonfiguráciu(Súborsúbor) {}// Konzola (vizuálna vlastnosť textu konzoly)// vyžaduje import java.awt.Color;@OverridepublicColorfarbaAktívnehoSlova(Stringslovo) {returnnull; }// Vstupný riadok@OverridepublicvoidpotvrdenieÚdajov() {}// Alternatíva: potvrdenieVstupu()@OverridepublicvoidzrušenieÚdajov() {}// Alternatíva: zrušenieVstupu()// Štandardný vstup@OverridepublicvoidspracujRiadokVstupu(StringriadokVstupu) {}@OverridepublicvoidkoniecVstupu() {}// Príkazový riadok@OverridepublicvoidukončenieProcesu( Svet.PríkazovýRiadok príkazovýRiadok,intnávratovýKód) {}// Ladenie a interaktívny režim@OverridepublicvoidspracovaniePríkazu() {}@Overridepublicbooleanladenie(intriadok,Stringpríkaz,intspráva) {returnsuper.ladenie(riadok, príkaz, správa); }// (Prípadne iné.)};
Musí byť presne dodržaná syntax metód, to jest vo väčšine prípadov:
@Override public void «názov reakcie»() { … }, kde
«názov reakcie» je jeden z názvov vyššie uvedených reakcií.
(Klauzula Override slúži na kontrolu. Keby sme ju
neuviedli a omylom urobili v názve metódy (reakcie) hoci nepatrný
preklep, obsluha určenej udalosti by nefungovala (aplikácia by
nereagovala).) Medzi zložené zátvorky sa {},
samozrejme, vpisuje kód, ktorý bude spustený v prípade, že nastane
(vznikne) prislúchajúca udalosť (napríklad používateľ stlačí kláves,
tlačidlo myši a podobne…).
Vytváranie obsluhy udalostí sa dá obísť tak, že prekryjete
prislúchajúce metódy ľubovoľného robota, ktoré sú na tento účel pripravené:
GRobot.tik(),
GRobot.klik()…
Rozhranie robotov však nemusí poskytnúť úplný zoznam metód obsluhy
udalostí. Napríklad neposkytuje metódu ladenie. Pri tých metódach, ktoré má k dispozícii platí, že metódy
obsluhy udalostí majú prednosť. Z toho dôvodu je možné, že ak nastane
počas spracovania metódy obsluhy udalostí výnimka, ktorá nebude v jej
tele zachytená, tak spracovanie udalosti robotmi nemusí nastať.
Pre jeden svet je možné spravidla definovať len jednu inštanciu obsluhy udalostí. (Výnimku z tohto pravidla spomenieme neskôr.) Pri pokuse o vytvorenie viacerých inštancií vznikne výnimka oznamujúca, že obsluha udalostí už bola definovaná.
Nasledujúci príklad demonštruje vytvorenie obsluhy udalostí na klik myšou. Robotu najskôr nastavuje rýchlosť, inak by sa nehýbal, a vzápätí je v obsluhe udalostí definované, aby sa robot po kliknutí myšou na plátno rozbehol smerom na pozíciu, kam bolo kliknuté.
rýchlosť(10,false);newObsluhaUdalostí() {@Overridepublicvoidklik() {cieľNaMyš(); } };
Rozšírená konfigurácia
Automatická konfigurácia sa spúšťa príkazom
Svet.použiKonfiguráciu pred vytvorením sveta. Predvolene je v konfigurácii
uložená len informácia o veľkosti a polohe hlavného okna aplikácie.
K týmto údajom je možné pridať skupinu vlastných konfiguračných údajov
a to s využitím troch na to rezervovaných reakcií
(konfiguráciaZmenená(),
zapíšKonfiguráciu(súbor)
a čítajKonfiguráciu(súbor) – ich význam je podrobnejšie opísaný
v komentároch v príklade nižšie) nasledujúcim spôsobom:
Na to, aby mala vlastná konfigurácia zmysel (aby sa aktuálne hodnoty konfiguračných premenných vždy korektne uložili pri ukončení aplikácie a prečítali pri jej opätovnom štarte), je potrebné prekryť (naprogramovať obsah) všetkých troch reakcií:importknižnica.*;publicclassTestKonfigurácieextendsGRobot{// Stručný princíp://// 1. Pre každú vlastnosť definujeme dvojicu atribútov.// A) Jeden atribút bude slúžiť na uchovanie skutočnej hodnoty// vlastnosti. S ním budeme pracovať v rámci celej aplikácie.// B) Druhý atribút bude slúžiť na uchovanie počiatočnej (prečítanej)// hodnoty vlastnosti. S ním budeme pracovať len pri čítaní// počiatočnej hodnoty a overení toho, či nastala zmena hodnoty// sledovanej vlastnosti.//// 2. Prekryjeme trojicu rekacií: konfiguráciaZmenená, zapíšKonfiguráciu// a čítajKonfiguráciu.// A) konfiguráciaZmenená – poskytuje od nás programovaciemu rámcu GRobot// informáciu o tom, či je potrebné zapísať konfiguračný// súbor, to jest, či bola konfigurácia zmenená…// B) zapíšKonfiguráciu – slúži na zapísanie našich vlastných// konfiguračných atribútov// C) čítajKonfiguráciu – slúži na čítanie našich vlastných// konfiguračných atribútov//// 3. Nesmieme zabudnúť spustiť príkaz Svet.použiKonfiguráciu… Tento// príkaz musí byť spustený ešte pred inicializáciou (naštartovaním)// sveta, to znamená – pred spustením konštruktora (pozri metódu main// nižšie).//
// Definícia vlastných konfiguračných vlastností:privatebooleanvlastnosť =false;// „skutočná“ vlastnosťprivatebooleanprečítanáVlastnosť =false;// „tieň“ – detektor zmien// Prípadne ďalšie dvojice…// ...privateTestKonfigurácie() {// Toto tlačidlo bude meniť stav vlastnosti:finalTlačidlotlačidlo =newTlačidlo("Zapnúť");newObsluhaUdalostí() {@OverridepublicvoidvoľbaTlačidla() {if(tlačidlo.aktivované()) {// Ak bolo zvolené, zmení sa hodnota vlastnosti aj text// tlačidlavlastnosť = !vlastnosť; tlačidlo.text(vlastnosť ?"Vypnúť":"Zapnúť"); } }// Na to, aby vlastná konfigurácia fungovala je nevyhnutné// naprogramovanie nasledujúcich troch reakcií:@OverridepublicbooleankonfiguráciaZmenená() {if(vlastnosť != prečítanáVlastnosť)returntrue;// ...returnfalse; }@OverridepublicvoidzapíšKonfiguráciu(Súborsúbor)throwsjava.io.IOException{// Zapisujeme hodnoty skutočných vlastností:súbor.zapíšVlastnosť("vlastnosť", vlastnosť);// ...}@OverridepublicvoidčítajKonfiguráciu(Súborsúbor)throwsjava.io.IOException{// Pri čítaní zmeníme naraz hodnotu skutočnej vlastnosti// aj hodnotu premennej prečítanáVlastnosť, ktorá slúži ako// detektor zmien a ktorá je vyhodnocovaná v reakcii// konfiguráciaZmenená.vlastnosť = prečítanáVlastnosť =súbor.čítajVlastnosť("vlastnosť", vlastnosť).booleanValue();// ...} };// Pre korektnosť je po prečítaní konfigurácie vhodné upraviť// ovládacie prvky tak, aby ich vzhľad zodpovedal aktuálnej hodnote// vlastnosti s ktorou súvisia:tlačidlo.text(vlastnosť ?"Vypnúť":"Zapnúť");// ...}publicstaticvoidmain(String[] args) {// Dôležité je uviesť príkaz použiKonfiguráciu pred inicializáciou// aplikácie (pred spustením konštruktora). Inak by bol pokus// o vykonanie tohto príkazu zamietnutýSvet.použiKonfiguráciu("test.cfg");newTestKonfigurácie(); } }
konfiguráciaZmenená, zapíšKonfiguráciu a čítajKonfiguráciu. Syntax pri
prekrývaní je potrebné detailne dodržať, to znamená, že pri tých
reakciách, pri ktorých je to vyžadované, je nevyhnutné uviesť parameter
Súbor aj klauzulu throws.
Výnimka z pravidla jedinej obsluhy udalostí
Pôvodne nebolo možné v tomto smere v programovacom rámci GRobot robiť
žiadne výnimky. Z bezpečnostných dôvodov bolo v rámci jednej aplikácie
možné vytvoriť len jednu obsluhu udalostí a tá bola pre stanovenú aplikáciu
konečná. Možnosť povolenia vytvárania viacerých inštancií obsluhy udalostí pribudla
v priebehu vývoja, no odporúčame túto možnosť využiť len v nevyhnutnom
prípade. Príklad, ktorý používa zapnutie viacnásobného spracovania udalostí
nájdete pri opise metódy presmerujObsluhuUdalostí.
| Konštruktor a opis |
|---|
ObsluhaUdalostí()
Predvolený konštruktor obsluhy udalostí.
|
| Modifikátor a typ | Metóda a opis |
|---|---|
void |
aktivaciaOdkazu()
Alias pre aktiváciaOdkazu. |
void |
aktiváciaOdkazu()
Spustená po aktivácii hypertextového odkazu umiestneného v rámci
niektorej z inštancií triedy
PoznámkovýBlok. |
void |
aktivaciaOkna()
Alias pre aktiváciaOkna. |
void |
aktiváciaOkna()
Spustená pri aktivácii okna.
|
static ObsluhaUdalosti |
aktivna()
Alias pre aktívna. |
static ObsluhaUdalostí |
aktívna()
Vráti aktuálny objekt obsluhy udalostí (aktívnu obsluhu udalostí)
alebo
null, ak nie je aktívna žiadna obsluha udalostí. |
void |
citajKonfiguraciu(Súbor subor)
Alias pre čítajKonfiguráciu. |
void |
čítajKonfiguráciu(Súbor súbor)
Reakcia je vykonaná počas čítania automatickej konfigurácie.
|
void |
deaktivaciaOkna()
Alias pre deaktiváciaOkna. |
void |
deaktiváciaOkna()
Spustená pri deaktivácii okna.
|
void |
dokreslenie()
Spustená po prekreslení sveta.
|
Color |
farbaAktivnehoSlova(String slovo)
Alias pre farbaAktívnehoSlova. |
Color |
farbaAktívnehoSlova(String slovo)
Spustená pri overovaní zmeny farby, ktorou má byť vypísané určité
(zadané) aktívne slovo vnútornej konzoly.
|
void |
klavesovaSkratka()
Alias pre klávesováSkratka. |
void |
klávesováSkratka()
Spustená pri zvolení klávesovej skratky.
|
void |
klik()
Spustená pri kliknutí tlačidlom myši.
|
boolean |
konfiguraciaZmenena()
Alias pre konfiguráciaZmenená. |
boolean |
konfiguráciaZmenená()
Výsledok (návratová hodnota) tejto reakcie môže byť overená pred
zápisom automatickej
konfigurácie.
|
void |
koniecVstupu()
Táto reakcia je spustená len v prípade, že štandardný vstup
(aktivovaný metódou
aktivujŠtandardnýVstup alebo niektorou jej verziou) je konečný. |
boolean |
ladenie(int riadok,
String príkaz,
int správa)
Táto reakcia je vykonávaná v režime ladenia.
|
void |
maximalizovanie()
Spustená pri maximalizovaní okna.
|
void |
minimalizovanie()
Spustená pri minimalizovaní okna.
|
void |
obnovenie()
Spustená pri obnovení okna.
|
void |
otvorenie()
Spustená pri prvom zobrazení okna.
|
void |
pohybMysi()
Alias pre pohybMyši. |
void |
pohybMyši()
Spustená pri pohybe myši nad plátnom podlahy.
|
void |
potvrdenieUdajov()
Alias pre potvrdenieÚdajov. |
void |
potvrdenieÚdajov()
Spustená po stlačení klávesu
Enter vo vstupnom riadku
zobrazenom po zavolaní metódy začniVstup. |
void |
potvrdenieVstupu()
Alias pre potvrdenieÚdajov. |
void |
prekreslenie()
Spustená pri (pred) prekreslení sveta.
|
void |
presunutieOkna()
Spustená pri presunutí okna.
|
void |
pustenieSuboru(String súbor)
Alias pre pustenieSúboru. |
void |
pustenieSúboru(String súbor)
Spustená po dokončení ťahania súboru z externej aplikácie.
|
void |
rolovanieKolieskomMysi()
Alias pre rolovanieKolieskomMyši. |
void |
rolovanieKolieskomMyši()
Spustená pri rolovaní kolieskom myši.
|
void |
sekvencia(int kódSpracovania,
Object zdroj,
Object cieľ,
long stav,
long celkovo)
Táto reakcia súvisí s časovo náročným spracovaním údajov počas
práce s pevným diskom.
|
void |
skrytieOkna()
Spustená pri skrytí okna.
|
void |
spracovaniePrikazu()
Alias pre spracovaniePríkazu. |
void |
spracovaniePríkazu()
Spustená po pozitívnom spracovaní príkazu v interaktívnom režime.
|
void |
spracujRiadokVstupu(String riadokVstupu)
Asynchrónne prijíma údaje (ak sú k dispozícii) zo štandardného
vstupu (externého zdroja), ktorý bol aktivovaný metódou
aktivujŠtandardnýVstup (alebo
niektorou jej verziou). |
void |
stlacenieKlavesu()
Alias pre stlačenieKlávesu. |
void |
stlacenieTlacidlaMysi()
Alias pre stlačenieTlačidlaMyši. |
void |
stlačenieKlávesu()
Spustená pri stlačení klávesu.
|
void |
stlačenieTlačidlaMyši()
Spustená pri stlačení tlačidla myši.
|
void |
tahanieMysou()
Alias pre ťahanieMyšou. |
void |
ťahanieMyšou()
Spustená pri pohybe myši nad hlavným komponentom okna (pri svete
hovoríme často o plátnach) počas držania tlačidla myši.
|
void |
tahanieSuborov()
Alias pre ťahanieSúborov. |
void |
ťahanieSúborov()
Táto reakcia je spúšťaná počas ťahania súboru a lebo súborov nad
hlavným komponentom okna.
|
void |
tahanieUkoncene(JComponent zdroj,
Transferable údaje,
int akcia)
Alias pre ťahanieUkončené. |
void |
ťahanieUkončené(JComponent zdroj,
Transferable údaje,
int akcia)
Spustená po dokončení ťahania súboru alebo súborov do externej
aplikácie.
|
void |
tik()
Spustená v pravidelnom časovom intervale časovača, ktorý sa dá
odštartovať metódou
spustiČasovač a zastaviť metódou zastavČasovač. |
void |
ukoncenie()
Alias pre ukončenie. |
void |
ukoncenieProcesu(Svet.PríkazovýRiadok príkazovýRiadok,
int návratovýKód)
Alias pre ukončenieProcesu. |
void |
ukončenie()
Spustená pri ukončení aplikácie.
|
void |
ukončenieProcesu(Svet.PríkazovýRiadok príkazovýRiadok,
int návratovýKód)
Táto reakcia je spustená po ukončení externého procesu, ktorý
spustila zadaná inštancia triedy
PríkazovýRiadok. |
void |
uvolnenieKlavesu()
Alias pre uvoľnenieKlávesu. |
void |
uvoľnenieKlávesu()
Spustená pri uvoľnení klávesu.
|
void |
uvolnenieTlacidlaMysi()
Alias pre uvoľnenieTlačidlaMyši. |
void |
uvoľnenieTlačidlaMyši()
Spustená pri uvoľnení tlačidla myši.
|
void |
volbaKontextovejPolozky()
Alias pre voľbaKontextovejPoložky. |
void |
voľbaKontextovejPoložky()
Spustená pri zvolení kontextovej položky.
|
void |
volbaPolozkyPonuky()
Alias pre voľbaPoložkyPonuky. |
void |
voľbaPoložkyPonuky()
Spustená pri zvolení položky ponuky.
|
void |
volbaSystemovejIkony()
Alias pre voľbaSystémovejIkony. |
void |
voľbaSystémovejIkony()
Spustená pri zvolení systémovej ikony.
|
void |
volbaSystemovejPolozky()
Alias pre voľbaSystémovejPoložky. |
void |
voľbaSystémovejPoložky()
Spustená pri zvolení položky kontextovej ponuky systémovej ikony.
|
void |
volbaTlacidla()
Alias pre voľbaTlačidla. |
void |
voľbaTlačidla()
Spustená pri zvolení tlačidla.
|
void |
vymazanie()
Spustená po vymazaní grafiky sveta.
|
void |
vzniklaChyba(GRobotException.Chyba chyba)
Táto reakcia je spustená v prípade, že bola nahlásená chyba
prostriedkami programovacieho rámca.
|
void |
zadanieZnaku()
Spustená pri zadaní znaku z klávesnice.
|
void |
zapisKonfiguraciu(Súbor subor)
Alias pre zapíšKonfiguráciu. |
void |
zapíšKonfiguráciu(Súbor súbor)
Reakcia je vykonaná počas zápisu automatickej konfigurácie.
|
void |
zastavenieAnimacie(Obrázok obrázok)
Alias pre zastavenieAnimácie. |
void |
zastavenieAnimácie(Obrázok obrázok)
Táto reakcia je spustená pri zastavení prehrávania animácie
obrázka.
|
boolean |
zatvorenie()
Alias pre zavretie. |
boolean |
zavretie()
Spustená pri zatváraní okna, pričom vrátením návratovej
hodnoty
false sa dá tejto aktivite zabrániť. |
boolean |
zmenaFokusu(boolean vpred)
Spustená pri stlačení klávesovej kombinácie zmeny fokusu
niektorého z komponentov.
|
void |
zmenaPosunuListy()
Alias pre zmenaPosunuLišty. |
void |
zmenaPosunuLišty()
Spustená pri zmene posunu rolovacej lišty.
|
void |
zmenaVelkostiOkna()
Alias pre zmenaVeľkostiOkna. |
void |
zmenaVeľkostiOkna()
Spustená pri zmene veľkosti okna.
|
void |
zobrazenieOkna()
Spustená pri zobrazení okna.
|
void |
zrusenieUdajov()
Alias pre zrušenieÚdajov. |
void |
zrusenieVstupu()
Alias pre zrušenieÚdajov. |
void |
zrušenieÚdajov()
Spustená po stlačení klávesu
ESC vo vstupnom riadku
zobrazenom po zavolaní metódy začniVstup. |
void |
zrušenieVstupu()
Alias pre zrušenieÚdajov. |
public ObsluhaUdalostí()
Predvolený konštruktor obsluhy udalostí.
GRobotException – ak nie je povolená viacnásobná obsluha
udalostí a už bola vytvorená inštancia obsluhy udalostí
(identifikátor eventFactoryAlreadyExists)public static final ObsluhaUdalostí aktívna()
Vráti aktuálny objekt obsluhy udalostí (aktívnu obsluhu udalostí)
alebo null, ak nie je aktívna žiadna obsluha udalostí.
(Túto metódu nie je možné prekryť – neslúži na obsluhu žiadnej
udalosti.)
Svet.aktívnaObsluhaUdalostí()public static final ObsluhaUdalosti aktivna()
Alias pre aktívna.
public void tik()
Spustená v pravidelnom časovom intervale časovača, ktorý sa dá
odštartovať metódou spustiČasovač a zastaviť metódou zastavČasovač. Informácie o poslednej udalosti časovača sa dajú
získať pomocou metódy ÚdajeUdalostí.tik().
Časovač pre všetky roboty automaticky spúšta metódu pracuj a časovač môže byť niektorými metódami
spustený automaticky. Pozri napríklad: rýchlosť, uhlováRýchlosť…
ÚdajeUdalostí.tik(),
GRobot.tik(),
Svet.tik()public void klik()
Spustená pri kliknutí tlačidlom myši. Použite metódu
ÚdajeUdalostí.myš() na
získanie podrobnejších údajov o tejto udalosti. Stav myši
je aktualizovaný aj vo vnútorných premenných sveta.
Na zistenie toho, v ktorom okne sa táto udalosť vyskytla
použite metódu ÚdajeUdalostí.oknoUdalosti(). (Pozor, nezamieňať s metódou
ÚdajeUdalostí.okno(),
ktorá nesie informáciu o komponente okna a je relevantná len
pri niektorých udalostiach.)
Ak sa udalosť vyskytla v hlavnom okne – vo svete, tak
metóda ÚdajeUdalostí.oknoUdalosti() vráti null.
public void voľbaPoložkyPonuky()
Spustená pri zvolení položky ponuky. Na získanie naposledy zvolenej
položky ponuky použite metódu ÚdajeUdalostí.položkaPonuky() alebo využite metódu aktivovaná triedy PoložkaPonuky na overenie aktivácie konkrétnej položky ponuky.
GRobot.voľbaPoložkyPonuky()public void volbaPolozkyPonuky()
Alias pre voľbaPoložkyPonuky.
public void voľbaKontextovejPoložky()
Spustená pri zvolení kontextovej položky. Na získanie naposledy
zvolenej kontextovej položky použite metódu ÚdajeUdalostí.kontextováPoložka()
alebo využite metódu aktivovaná triedy KontextováPoložka na
overenie aktivácie konkrétnej kontextovej položky.
GRobot.voľbaKontextovejPoložky()public void volbaKontextovejPolozky()
Alias pre voľbaKontextovejPoložky.
public void voľbaTlačidla()
Spustená pri zvolení tlačidla. Použite metódu ÚdajeUdalostí.tlačidlo()
na získanie inštancie naposledy zvoleného tlačidla, prípadne
metódu Tlačidlo.aktivované() na overenie toho, či
bolo toto tlačidlo naposledy aktivované. Praktický príklad
nájdete v opise triedy Tlačidlo.
Tlačidlo,
GRobot.voľbaTlačidla()public void volbaTlacidla()
Alias pre voľbaTlačidla.
public void zmenaPosunuLišty()
Spustená pri zmene posunu rolovacej lišty. Použite metódu
ÚdajeUdalostí.rolovaciaLišta()
na získanie inštancie posunutej lišty, metódu
ÚdajeUdalostí.posunRolovacejLišty() na získanie konkrétnej
hodnoty posunu lišty alebo metódu
ÚdajeUdalostí.udalosťPosunu()
na získanie objektu udalosti rolovania
AdjustmentEvent.
Praktický príklad nájdete v opise triedy RolovaciaLišta.
RolovaciaLišta,
GRobot.zmenaPosunuLišty()public void zmenaPosunuListy()
Alias pre zmenaPosunuLišty.
public void voľbaSystémovejIkony()
Spustená pri zvolení systémovej ikony. Použite metódu ÚdajeUdalostí.udalosťSystémovejIkony() na získanie všetkých
údajov o tejto udalosti.
public void volbaSystemovejIkony()
Alias pre voľbaSystémovejIkony.
public void voľbaSystémovejPoložky()
Spustená pri zvolení položky kontextovej ponuky systémovej ikony.
Použite metódu ÚdajeUdalostí.udalosťSystémovejIkony() na získanie všetkých
údajov o tejto udalosti.
public void volbaSystemovejPolozky()
Alias pre voľbaSystémovejPoložky.
public void vymazanie()
Spustená po vymazaní grafiky sveta. Táto reakcia môže
byť použitá na obnovenie (znovu nakreslenie) grafického obsahu
plátien po úplnom vymazaní. Je to
alternatívny spôsob. Robot má dostatok nástrojov (metód) na
kreslenie (a kreslenie každého robota môže byť nasmerované ako na
podlahu, tak na strop). Ak potrebujete využívať metódy
triedy Graphics2D, použite metódu podlaha.grafika() (resp. strop.grafika()) na prístup k nej. Majte
na pamäti, že grafika plátna pracuje s odlišným súradnicovým
priestorom, než grafický programovací rámec.
V súčasnej verzii rámca je možné rozlišovať, ktoré plátno bolo
práve vymazané. Slúžia na to metódy údajov
udalostí: vymazanéPlátno()
a vymazanéPlátno(plátno)
GRobot.vymazanie()public void prekreslenie()
Spustená pri (pred) prekreslení sveta. Táto reakcia môže byť
využitá na dokreslenie obsahu plátien
(ich „finálne úpravy“) pred prekreslením sveta. Robot má dostatok
nástrojov (metód) na kreslenie (a kreslenie každého robota môže
byť nasmerované ako na podlahu, tak na strop). Ak
potrebujete využívať metódy (nástroje) triedy Graphics2D, použite metódu podlaha.grafika() (resp. strop.grafika()) na prevzatie grafického objektu, pomocou
ktorého môžete tiež dokresľovať obsah plátien (v podstate
rovnocenne ako pri kreslení pomocou robota, avšak treba mať na
pamäti, že grafika plátna pracuje s odlišným súradnicovým
priestorom, než grafický programovací rámec).
GRobot.prekreslenie()public void dokreslenie()
Spustená po prekreslení sveta. Funguje podobne ako reakcia prekreslenie, ibaže je spustená po prekreslení
sveta, tesne pred finálnym zobrazením grafiky v okne (na
obrazovke). Takže v tomto momente je čas na posledné finálne
úpravy obsahu, ktorý bude reálne zobrazený na obrazovke. Čokoľvek
sa v tomto momente pokúsite nakresliť na plátno podlahy alebo stropu, už nestihne byť
zobrazené v tomto pracovnom cykle, avšak môžete použiť grafický
objekt sveta (získaný metódou Svet.grafika()) na dokreslenie (krátkodobého) grafického obsahu.
Treba podotknúť že spomenutý objekt grafika pracuje
v súradnicovom priestore Javy a všetko, čo pomocou neho
nakreslíte, bude na obrazovke zobrazené len do najbližšieho
prekreslenia.
(O súradnicových priestoroch sa podrobnejšie píše napríklad
v opisoch metód GRobot.cesta(), SVGpodpora.zapíš(…),
SVGpodpora.čítaj(meno) a priebežne
v celej dokumentácii.)
GRobot.dokreslenie()public void zobrazenieOkna()
Spustená pri zobrazení okna. Na získanie objektu
s podrobnejšími údajmi o tejto udalosti použite metódu ÚdajeUdalostí.okno().
Na zistenie toho, v ktorom okne sa táto udalosť vyskytla
použite metódu ÚdajeUdalostí.oknoUdalosti(). (Pozor, nezamieňať s metódou
ÚdajeUdalostí.okno(),
ktorá nesie informáciu o komponente okna a je relevantná len
pri niektorých udalostiach.)
Ak sa udalosť vyskytla v hlavnom okne – vo svete, tak
metóda ÚdajeUdalostí.oknoUdalosti() vráti null.
GRobot.zobrazenieOkna()public void skrytieOkna()
Spustená pri skrytí okna. Na získanie objektu
s podrobnejšími údajmi o tejto udalosti použite metódu ÚdajeUdalostí.okno().
Na zistenie toho, v ktorom okne sa táto udalosť vyskytla
použite metódu ÚdajeUdalostí.oknoUdalosti(). (Pozor, nezamieňať s metódou
ÚdajeUdalostí.okno(),
ktorá nesie informáciu o komponente okna a je relevantná len
pri niektorých udalostiach.)
Ak sa udalosť vyskytla v hlavnom okne – vo svete, tak
metóda ÚdajeUdalostí.oknoUdalosti() vráti null.
Upozornenie: Ak skryjete okno sveta a neponecháte systému žiadnu možnosť interakcie s aplikáciou (napríklad systémovú ikonu), tak virtuálny stroj Javy po chvíli Vašu aplikáciu (pri nečinnosti) automaticky ukončí.
GRobot.skrytieOkna()public void presunutieOkna()
Spustená pri presunutí okna. Na získanie objektu
s podrobnejšími údajmi o tejto udalosti použite metódu ÚdajeUdalostí.okno().
Na zistenie toho, v ktorom okne sa táto udalosť vyskytla
použite metódu ÚdajeUdalostí.oknoUdalosti(). (Pozor, nezamieňať s metódou
ÚdajeUdalostí.okno(),
ktorá nesie informáciu o komponente okna a je relevantná len
pri niektorých udalostiach.)
Ak sa udalosť vyskytla v hlavnom okne – vo svete, tak
metóda ÚdajeUdalostí.oknoUdalosti() vráti null.
GRobot.presunutieOkna()public void zmenaVeľkostiOkna()
Spustená pri zmene veľkosti okna. Na získanie objektu
s podrobnejšími údajmi o tejto udalosti použite metódu ÚdajeUdalostí.okno().
Po vykonaní tejto metódy pre svet je v prípade, že sa pracovalo s výpismi textov na podlahu alebo strop, spustené automatické prekreslenie. Ak je automatické prekreslenie vypnuté, musí sa o prekreslenie sveta pri zmene veľkosti okna postarať programátor.
Na zistenie toho, v ktorom okne sa táto udalosť vyskytla
použite metódu ÚdajeUdalostí.oknoUdalosti(). (Pozor, nezamieňať s metódou
ÚdajeUdalostí.okno(),
ktorá nesie informáciu o komponente okna a je relevantná len
pri niektorých udalostiach.)
Ak sa udalosť vyskytla v hlavnom okne – vo svete, tak
metóda ÚdajeUdalostí.oknoUdalosti() vráti null.
GRobot.zmenaVeľkostiOkna()public void zmenaVelkostiOkna()
Alias pre zmenaVeľkostiOkna.
public void aktiváciaOkna()
Spustená pri aktivácii okna. Na získanie objektu
s podrobnejšími údajmi o tejto udalosti použite metódu
ÚdajeUdalostí.aktivitaOkna().
Na zistenie toho, v ktorom okne sa táto udalosť vyskytla
použite metódu ÚdajeUdalostí.oknoUdalosti(). (Pozor, nezamieňať s metódou
ÚdajeUdalostí.okno(),
ktorá nesie informáciu o komponente okna a je relevantná len
pri niektorých udalostiach.)
Ak sa udalosť vyskytla v hlavnom okne – vo svete, tak
metóda ÚdajeUdalostí.oknoUdalosti() vráti null.
GRobot.aktiváciaOkna()public void aktivaciaOkna()
Alias pre aktiváciaOkna.
public void deaktiváciaOkna()
Spustená pri deaktivácii okna. Na získanie objektu
s podrobnejšími údajmi o tejto udalosti použite metódu
ÚdajeUdalostí.aktivitaOkna().
Na zistenie toho, v ktorom okne sa táto udalosť vyskytla
použite metódu ÚdajeUdalostí.oknoUdalosti(). (Pozor, nezamieňať s metódou
ÚdajeUdalostí.okno(),
ktorá nesie informáciu o komponente okna a je relevantná len
pri niektorých udalostiach.)
Ak sa udalosť vyskytla v hlavnom okne – vo svete, tak
metóda ÚdajeUdalostí.oknoUdalosti() vráti null.
GRobot.deaktiváciaOkna()public void deaktivaciaOkna()
Alias pre deaktiváciaOkna.
public void maximalizovanie()
Spustená pri maximalizovaní okna. Na získanie objektu
s podrobnejšími údajmi o tejto udalosti použite metódu
ÚdajeUdalostí.aktivitaOkna().
Na zistenie toho, v ktorom okne sa táto udalosť vyskytla
použite metódu ÚdajeUdalostí.oknoUdalosti(). (Pozor, nezamieňať s metódou
ÚdajeUdalostí.okno(),
ktorá nesie informáciu o komponente okna a je relevantná len
pri niektorých udalostiach.)
Ak sa udalosť vyskytla v hlavnom okne – vo svete, tak
metóda ÚdajeUdalostí.oknoUdalosti() vráti null.
GRobot.maximalizovanie()public void minimalizovanie()
Spustená pri minimalizovaní okna. Na získanie objektu
s podrobnejšími údajmi o tejto udalosti použite metódu
ÚdajeUdalostí.aktivitaOkna().
Na zistenie toho, v ktorom okne sa táto udalosť vyskytla
použite metódu ÚdajeUdalostí.oknoUdalosti(). (Pozor, nezamieňať s metódou
ÚdajeUdalostí.okno(),
ktorá nesie informáciu o komponente okna a je relevantná len
pri niektorých udalostiach.)
Ak sa udalosť vyskytla v hlavnom okne – vo svete, tak
metóda ÚdajeUdalostí.oknoUdalosti() vráti null.
GRobot.minimalizovanie()public void obnovenie()
Spustená pri obnovení okna. Na získanie objektu
s podrobnejšími údajmi o tejto udalosti použite metódu
ÚdajeUdalostí.aktivitaOkna().
Na zistenie toho, v ktorom okne sa táto udalosť vyskytla
použite metódu ÚdajeUdalostí.oknoUdalosti(). (Pozor, nezamieňať s metódou
ÚdajeUdalostí.okno(),
ktorá nesie informáciu o komponente okna a je relevantná len
pri niektorých udalostiach.)
Ak sa udalosť vyskytla v hlavnom okne – vo svete, tak
metóda ÚdajeUdalostí.oknoUdalosti() vráti null.
GRobot.obnovenie()public void otvorenie()
Spustená pri prvom zobrazení okna. Na získanie objektu
s podrobnejšími údajmi o tejto udalosti použite metódu
ÚdajeUdalostí.aktivitaOkna().
Na zistenie toho, v ktorom okne sa táto udalosť vyskytla
použite metódu ÚdajeUdalostí.oknoUdalosti(). (Pozor, nezamieňať s metódou
ÚdajeUdalostí.okno(),
ktorá nesie informáciu o komponente okna a je relevantná len
pri niektorých udalostiach.)
Ak sa udalosť vyskytla v hlavnom okne – vo svete, tak
metóda ÚdajeUdalostí.oknoUdalosti() vráti null.
GRobot.otvorenie()public boolean zavretie()
Spustená pri zatváraní okna, pričom vrátením návratovej
hodnoty false sa dá tejto aktivite zabrániť. Na získanie
objektu s podrobnejšími údajmi o tejto udalosti použite metódu
ÚdajeUdalostí.aktivitaOkna().
Na zistenie toho, v ktorom okne sa táto udalosť vyskytla
použite metódu ÚdajeUdalostí.oknoUdalosti(). (Pozor, nezamieňať s metódou
ÚdajeUdalostí.okno(),
ktorá nesie informáciu o komponente okna a je relevantná len
pri niektorých udalostiach.)
Ak sa udalosť vyskytla v hlavnom okne – vo svete, tak
metóda ÚdajeUdalostí.oknoUdalosti() vráti null.
GRobot.zavretie(),
Svet.zavrieť(),
Svet.koniec()public boolean zatvorenie()
Alias pre zavretie.
public void ukončenie()
Spustená pri ukončení aplikácie. V tejto reakcii je možné vykonať niektoré záverečné upratovacie akcie, napríklad uloženie stavu aplikácie a podobne.
Priorita spúšťania tejto obsluhy udalosti prekrytej v niektorom robote a v obsluhe udalostí je upravená tak, že udalosť v obsluhe udalostí je spustená pred automatickým uložením konfigurácie a udalosť v robote (prípadne vo viacerých robotoch) po ňom.
GRobot.ukončenie()public void ukoncenie()
Alias pre ukončenie.
public void potvrdenieÚdajov()
Spustená po stlačení klávesu Enter vo vstupnom riadku
zobrazenom po zavolaní metódy začniVstup. Na získanie potvrdených údajov použite metódy
prevezmiReťazec,
prevezmiCeléČíslo alebo
prevezmiReálneČíslo.
V prípade, že potvrdené údaje nie sú v správnom tvare (platí pre
celé alebo reálne číslo), je prislúchajúcou metódou „prevezmi“
vrátené null.
Upozornenie: Táto metóda nepracuje
so štandardným vstupom údajov, ktorý je schopný prijímať údaje
z iného procesu. Pozri reakciu spracujRiadokVstupu.
GRobot.potvrdenieÚdajov()public void potvrdenieUdajov()
Alias pre potvrdenieÚdajov.
public void potvrdenieVstupu()
Alias pre potvrdenieÚdajov.
public void spracovaniePríkazu()
Spustená po pozitívnom spracovaní príkazu v interaktívnom režime.
GRobot.spracovaniePríkazu()public void spracovaniePrikazu()
Alias pre spracovaniePríkazu.
public void zrušenieÚdajov()
Spustená po stlačení klávesu ESC vo vstupnom riadku
zobrazenom po zavolaní metódy začniVstup.
Reakciou na zrušenie vstupu môže byť napríklad ukončenie primitívnej priamočiarej aplikácie
vyžadujúcej na svouju činnosť potvrdenie vstupu.
GRobot.zrušenieÚdajov()public void zrusenieUdajov()
Alias pre zrušenieÚdajov.
public void zrušenieVstupu()
Alias pre zrušenieÚdajov.
public void zrusenieVstupu()
Alias pre zrušenieÚdajov.
public void spracujRiadokVstupu(String riadokVstupu)
Asynchrónne prijíma údaje (ak sú k dispozícii) zo štandardného
vstupu (externého zdroja), ktorý bol aktivovaný metódou aktivujŠtandardnýVstup (alebo
niektorou jej verziou).
Upozornenie: Táto metóda nepracuje
so zabudovaným vstupným riadkom programovacieho rámca. Pozri reakciu
potvrdenieÚdajov.
riadokVstupu – riadok údajov prijatý zo štandardného vstupuGRobot.spracujRiadokVstupu(String),
koniecVstupu(),
Svet.aktivujŠtandardnýVstup(),
Svet.aktivujŠtandardnýVstup(String),
Svet.štandardnýVstupAktívny(),
Svet.čakajNaVstup()public void koniecVstupu()
Táto reakcia je spustená len v prípade, že štandardný vstup
(aktivovaný metódou aktivujŠtandardnýVstup alebo niektorou jej verziou) je konečný.
Jej spustenie znamená, že prúd údajov prijímaný zo štandardného
vstupu dosiahol svoj koniec.
public void vzniklaChyba(GRobotException.Chyba chyba)
Táto reakcia je spustená v prípade, že bola nahlásená chyba
prostriedkami programovacieho rámca. Medzi nich patrí
generovanie výnimiek programovacieho rámca (GRobotException) a vnútorný mechanizmus hlásenia rôznych (chybových)
stavov rámca.
Poznámka: Všetky chyby sú zároveň zaznamenávané do denníka chýb.
Príklad:
Výpisy chýb môžu byť rôznych úrovní. Niektoré spôsoby ukazuje tento príklad.
importknižnica.*;publicclassVzniklaChybaextendsGRobot{privateVzniklaChyba() {obrázok("obrazok-nejestvuje"); }@OverridepublicvoidvzniklaChyba(GRobotException.Chybachyba) {if(null!= chyba.správa)Svet.vypíšRiadok(chyba.správa);if(null!= chyba.výnimka) {if(null== chyba.výnimka.getMessage()) Svet.vypíšRiadok(GRobotException.stackTraceToString(chyba.výnimka));elseSvet.vypíšRiadok(chyba.výnimka.getMessage()); }Svet.vypíšRiadok("———"); }@Overridepublicvoidklik() {newGRobotException("Test výnimky",null); }publicstaticvoidmain(String[] args) {newVzniklaChyba(); } }
Výsledok:

Ukážka
výsledku výpisu chýb.
chyba – inštancia obsahujúca podrobnosti o chybe; pozri GRobotException.ChybaGRobot.vzniklaChyba(GRobotException.Chyba),
GRobotException,
GRobotException.Chybapublic void stlačenieTlačidlaMyši()
Spustená pri stlačení tlačidla myši. Použite metódu
ÚdajeUdalostí.myš() na
získanie podrobnejších údajov o tejto udalosti. Stav myši
je aktualizovaný aj vo vnútorných premenných sveta.
Na zistenie toho, v ktorom okne sa táto udalosť vyskytla
použite metódu ÚdajeUdalostí.oknoUdalosti(). (Pozor, nezamieňať s metódou
ÚdajeUdalostí.okno(),
ktorá nesie informáciu o komponente okna a je relevantná len
pri niektorých udalostiach.)
Ak sa udalosť vyskytla v hlavnom okne – vo svete, tak
metóda ÚdajeUdalostí.oknoUdalosti() vráti null.
public void stlacenieTlacidlaMysi()
Alias pre stlačenieTlačidlaMyši.
public void uvoľnenieTlačidlaMyši()
Spustená pri uvoľnení tlačidla myši. Použite metódu
ÚdajeUdalostí.myš() na
získanie podrobnejších údajov o tejto udalosti. Stav myši
je aktualizovaný aj vo vnútorných premenných sveta.
Na zistenie toho, v ktorom okne sa táto udalosť vyskytla
použite metódu ÚdajeUdalostí.oknoUdalosti(). (Pozor, nezamieňať s metódou
ÚdajeUdalostí.okno(),
ktorá nesie informáciu o komponente okna a je relevantná len
pri niektorých udalostiach.)
Ak sa udalosť vyskytla v hlavnom okne – vo svete, tak
metóda ÚdajeUdalostí.oknoUdalosti() vráti null.
public void uvolnenieTlacidlaMysi()
Alias pre uvoľnenieTlačidlaMyši.
public void pohybMyši()
Spustená pri pohybe myši nad plátnom podlahy. Použite metódu
ÚdajeUdalostí.myš() na
získanie podrobnejších údajov o tejto udalosti. Stav myši
je aktualizovaný aj vo vnútorných premenných sveta.
public void pohybMysi()
Alias pre pohybMyši.
public void ťahanieMyšou()
Spustená pri pohybe myši nad hlavným komponentom okna (pri svete
hovoríme často o plátnach) počas držania tlačidla myši.
Použite metódu ÚdajeUdalostí.myš() na
získanie podrobnejších údajov o tejto udalosti. Stav myši je
aktualizovaný aj vo vnútorných premenných sveta.
Na zistenie toho, v ktorom okne sa táto udalosť vyskytla
použite metódu ÚdajeUdalostí.oknoUdalosti(). (Pozor, nezamieňať s metódou
ÚdajeUdalostí.okno(),
ktorá nesie informáciu o komponente okna a je relevantná len
pri niektorých udalostiach.)
Ak sa udalosť vyskytla v hlavnom okne – vo svete, tak
metóda ÚdajeUdalostí.oknoUdalosti() vráti null.
public void tahanieMysou()
Alias pre ťahanieMyšou.
public void rolovanieKolieskomMyši()
Spustená pri rolovaní kolieskom myši. Použite metódu ÚdajeUdalostí.myš() alebo ÚdajeUdalostí.kolieskoMyši() na
získanie podrobnejších údajov o tejto udalosti. Stav myši je
aktualizovaný aj vo vnútorných premenných sveta.
Na zistenie toho, v ktorom okne sa táto udalosť vyskytla
použite metódu ÚdajeUdalostí.oknoUdalosti(). (Pozor, nezamieňať s metódou
ÚdajeUdalostí.okno(),
ktorá nesie informáciu o komponente okna a je relevantná len
pri niektorých udalostiach.)
Ak sa udalosť vyskytla v hlavnom okne – vo svete, tak
metóda ÚdajeUdalostí.oknoUdalosti() vráti null.
ÚdajeUdalostí.tlačidloMyši1(),
ÚdajeUdalostí.tlačidloMyši2(),
ÚdajeUdalostí.tlačidloMyši3(),
ÚdajeUdalostí.myš(),
ÚdajeUdalostí.kolieskoMyši(),
ÚdajeUdalostí.súradnicaMyšiX(),
ÚdajeUdalostí.súradnicaMyšiY(),
ÚdajeUdalostí.rolovanieKolieskomMyšiX(),
ÚdajeUdalostí.rolovanieKolieskomMyšiY(),
GRobot.rolovanieKolieskomMyši()public void rolovanieKolieskomMysi()
Alias pre rolovanieKolieskomMyši.
public boolean zmenaFokusu(boolean vpred)
Spustená pri stlačení klávesovej kombinácie zmeny fokusu
niektorého z komponentov. Použite metódu ÚdajeUdalostí.klávesnica() na získanie
podrobnejších údajov o tejto udalosti alebo metódu ÚdajeUdalostí.komponentFokusu() na
získanie komponentu, ktorý je aktuálnym vlastníkom fokusu v kontexte
pokusu o jeho zmenu touto udalosťou. Užitočné sú aj ďalšie metódy
triedy ÚdajeUdalostí uvedené v zozname
nižšie.
Táto reakcia je volaná vždy pred reakciou stlačenieKlávesu. Programátor v nej môže overiť, kde sa práve nachádza
reťaz komponentov fokusu a či ju chce dočasne prerušiť, alebo nie.
Podľa toho je povinný určiť návratovú hodnotu tejto reakcie:
true – reťaz fokusu má pokračovať bez prerušenia
(programátor nepotreboval vykonať žiadnu akciu a aplikácia nemá v tejto
situácii nijako upravovať svoje predvolené správanie);false – programátor prerušil reťaz fokusu – programátor
určil, či a kam sa má fokus presunúť, predvolený mechanizmus zmeny
fokusu bude potlačený.vpred – ak je hodnotota tohto parametra rovná true, tak
ide o udalosť zmeny fokusu vpred, v opačnom prípade je hodnota
parametra rovná falseÚdajeUdalostí.klávesnica(),
ÚdajeUdalostí.kláves(),
ÚdajeUdalostí.kláves(int),
ÚdajeUdalostí.znak(),
ÚdajeUdalostí.znak(char),
GRobot.zmenaFokusu(boolean)public void stlačenieKlávesu()
Spustená pri stlačení klávesu. Použite metódu
ÚdajeUdalostí.klávesnica()
na získanie podrobnejších údajov o tejto udalosti.
Užitočné sú aj ďalšie metódy triedy ÚdajeUdalostí uvedené v zozname nižšie.
Pre túto udalosť najmä kláves()
a kláves(int)
Na zistenie toho, v ktorom okne sa táto udalosť vyskytla
použite metódu ÚdajeUdalostí.oknoUdalosti(). (Pozor, nezamieňať s metódou
ÚdajeUdalostí.okno(),
ktorá nesie informáciu o komponente okna a je relevantná len
pri niektorých udalostiach.)
Ak sa udalosť vyskytla v hlavnom okne – vo svete, tak
metóda ÚdajeUdalostí.oknoUdalosti() vráti null.
public void stlacenieKlavesu()
Alias pre stlačenieKlávesu.
public void uvoľnenieKlávesu()
Spustená pri uvoľnení klávesu. Použite metódu
ÚdajeUdalostí.klávesnica()
na získanie podrobnejších údajov o tejto udalosti.
Užitočné sú aj ďalšie metódy triedy ÚdajeUdalostí uvedené v zozname nižšie.
Pre túto udalosť najmä kláves()
a kláves(int)
Na zistenie toho, v ktorom okne sa táto udalosť vyskytla
použite metódu ÚdajeUdalostí.oknoUdalosti(). (Pozor, nezamieňať s metódou
ÚdajeUdalostí.okno(),
ktorá nesie informáciu o komponente okna a je relevantná len
pri niektorých udalostiach.)
Ak sa udalosť vyskytla v hlavnom okne – vo svete, tak
metóda ÚdajeUdalostí.oknoUdalosti() vráti null.
public void uvolnenieKlavesu()
Alias pre uvoľnenieKlávesu.
public void zadanieZnaku()
Spustená pri zadaní znaku z klávesnice. Nie každý kláves generuje
túto udalosť. Táto udalosť vzniká len pri stlačení a uvoľnení
klávesu, ktorý produkuje znak, to znamená, že pri klávesoch ako
kurzorové šípky, Shift, Ctrl, Cmd a podobne
táto udalosť nevzniká. Použite metódu
ÚdajeUdalostí.klávesnica()
na získanie podrobnejších údajov o tejto udalosti.
Užitočné sú aj ďalšie metódy triedy ÚdajeUdalostí uvedené v zozname nižšie.
Pre túto udalosť najmä znak()
a znak(char)
Na zistenie toho, v ktorom okne sa táto udalosť vyskytla
použite metódu ÚdajeUdalostí.oknoUdalosti(). (Pozor, nezamieňať s metódou
ÚdajeUdalostí.okno(),
ktorá nesie informáciu o komponente okna a je relevantná len
pri niektorých udalostiach.)
Ak sa udalosť vyskytla v hlavnom okne – vo svete, tak
metóda ÚdajeUdalostí.oknoUdalosti() vráti null.
public void klávesováSkratka()
Spustená pri zvolení klávesovej skratky. Použite metódu ÚdajeUdalostí.príkazSkratky() na
získanie textu príkazu súvisiaceho s touto klávesovou skratkou,
prípadne metódu ÚdajeUdalostí.udalosťSkratky() na získanie doplňujúcich údajov
o tejto udalosti.
Na zistenie toho, v ktorom okne sa táto udalosť vyskytla
použite metódu ÚdajeUdalostí.oknoUdalosti(). (Pozor, nezamieňať s metódou
ÚdajeUdalostí.okno(),
ktorá nesie informáciu o komponente okna a je relevantná len
pri niektorých udalostiach.)
Ak sa udalosť vyskytla v hlavnom okne – vo svete, tak
metóda ÚdajeUdalostí.oknoUdalosti() vráti null.
Poznámka: Príklad použitia nájdete
napríklad v opise vnorenej triedy Svet.PríkazovýRiadok.
public void klavesovaSkratka()
Alias pre klávesováSkratka.
public void ťahanieSúborov()
Táto reakcia je spúšťaná počas ťahania súboru a lebo súborov nad hlavným komponentom okna. To umožňuje aplikácii v prípade potreby graficky zareagovať.
Na zistenie toho, v ktorom okne sa táto udalosť vyskytla
použite metódu ÚdajeUdalostí.oknoUdalosti(). (Pozor, nezamieňať s metódou
ÚdajeUdalostí.okno(),
ktorá nesie informáciu o komponente okna a je relevantná len
pri niektorých udalostiach.)
Ak sa udalosť vyskytla v hlavnom okne – vo svete, tak
metóda ÚdajeUdalostí.oknoUdalosti() vráti null.
public void tahanieSuborov()
Alias pre ťahanieSúborov.
public void pustenieSúboru(String súbor)
Spustená po dokončení ťahania súboru z externej aplikácie. Ak bolo z externej aplikácie potiahnutých viac súborov, tak bude táto reakcia spustená pre každý z nich osobitne.
Na zistenie toho, v ktorom okne sa táto udalosť vyskytla
použite metódu ÚdajeUdalostí.oknoUdalosti(). (Pozor, nezamieňať s metódou
ÚdajeUdalostí.okno(),
ktorá nesie informáciu o komponente okna a je relevantná len
pri niektorých udalostiach.)
Ak sa udalosť vyskytla v hlavnom okne – vo svete, tak
metóda ÚdajeUdalostí.oknoUdalosti() vráti null.
Poznámka: Od verzie 2.19 je možné zisťovať
akciu pustenia súboru metódou akciaPustenia.
Príklad:
Toto je najjednoduchší príklad spracovania súborov potiahnutých a pustených nad plátnom.
@OverridepublicvoidpustenieSúboru(Stringsúbor) {Svet.vypíšRiadok(súbor); }
Príklad:
Tento príklad je o poznanie zložitejší. Umožňuje vykonávať základné transformácie obrázka (posunutie, otočenie, mierka) prostredníctvom aktuálneho robota. Tiež spravuje vnútornú pamäť rámca, čo umožňuje príkladu fungovať kontinuálne/dlhodobo (bez nevyhnutnosti reštartovania aplikácie) aj po vystriedaní väčšieho množstva obrázkov.
Tento príklad sa spomína aj v opisoch metód klávesnica, myš a kolieskoMyši.
V súvislosti s tým upriamujeme pozornosť na metódu príznakyMyši (v tomto príklade), ktorá ukazuje možný spôsob
spracovania príznakov udalostí myši. Zaujímavá je implementácia
príkazu skratkaPonuky (v tomto príklade „vypnutá“ –
umiestnená v komentároch), ktorá je spracovaná platformovo závisle
(z dôvodu zvýšenia komfortu používateľov v súvislosti s obvyklými
postupmi na rôznych platformách).
importknižnica.*;publicclassTransformácieObrázkaextendsGRobot{privateTransformácieObrázka() {super("Transformácie obrázka");skry();if(Svet.prvéSpustenie())Svet.zbaľ();Svet.vystreď();Svet.nekresli();veľkosťDoma(veľkosť()); }
privateStringnázov =null;privateObrázokobrázok =null;privatevoidobnov() {Svet.vymaž(); obrázok(obrázok);Svet.prekresli(); }privatevoidotvor(Stringsúbor) {if(Súbor.jestvuje(súbor)) {if(null!= názov) {Svet.uvoľni(názov); názov =null; }if(null!= obrázok) {Svet.uvoľni(obrázok); obrázok =null; } obrázok =Obrázok.čítaj(súbor); názov = súbor;domov(); obnov(); }elseSvet.chyba("Súbor nejestvuje."); }@OverridepublicvoidpustenieSúboru(Stringsúbor) { otvor(súbor); }
privateBodmyš1 =null;// private boolean skratkaPonuky = false;// private boolean alt = false;// private boolean shift = false;privatebooleanľavé =false;// private boolean pravé = false;// private boolean stredné = false;privatevoidpríznakyMyši() {// skratkaPonuky =// Kláves.SKRATKA_PONUKY == Kláves.CTRL_MASK ?// ÚdajeUdalostí.myš().isControlDown() :// ÚdajeUdalostí.myš().isMetaDown();// alt = ÚdajeUdalostí.myš().isAltDown();// shift = ÚdajeUdalostí.myš().isShiftDown();ľavé =ÚdajeUdalostí.tlačidloMyši(ĽAVÉ);// pravé = ÚdajeUdalostí.tlačidloMyši(PRAVÉ);// stredné = ÚdajeUdalostí.tlačidloMyši(STREDNÉ);}@OverridepublicvoidstlačenieTlačidlaMyši() { myš1 =ÚdajeUdalostí.polohaMyši(); }@OverridepublicvoidťahanieMyšou() { príznakyMyši();Bodmyš2 =ÚdajeUdalostí.polohaMyši();if(null!= myš1) {if(ľavé) {skoč(myš2.polohaX() - myš1.polohaX(), myš2.polohaY() - myš1.polohaY()); }else// if (pravé){doubleuhol1 =smerNa(myš1);doubleuhol2 =smerNa(myš2);vľavo(uhol2 - uhol1); } obnov(); } myš1 = myš2; }@OverridepublicvoidrolovanieKolieskomMyši() {// int Δx = ÚdajeUdalostí.rolovanieKolieskomMyšiX();intΔy =ÚdajeUdalostí.rolovanieKolieskomMyšiY();doublezmena =veľkosť() + Δy;if(zmena >100) zmena =100;elseif(zmena <1) zmena =1;veľkosť(zmena); obnov(); }
publicstaticvoidmain(String[] args) {Svet.skry();Svet.použiKonfiguráciu("TransformácieObrázka.cfg");newTransformácieObrázka();Svet.zobraz(); } }
súbor – úplná cesta a meno súboruGRobot.pustenieSúboru(String)public void pustenieSuboru(String súbor)
Alias pre pustenieSúboru.
public void ťahanieUkončené(JComponent zdroj, Transferable údaje, int akcia)
Spustená po dokončení ťahania súboru alebo súborov do externej
aplikácie. Táto udalosť by mala vzniknúť po pustení ťahaných súborov
z tejto aplikácie (aplikácie vytvorenej s týmto programovacím rámcom)
do inej/externej aplikácie. Ťahanie by malo byť spustené metódou sveta:
ťahajSúbory. Do tejto reakcie
prídu údaje súvisiace s týmto procesom. Zdroj bude pravdepodobne
null, pretože metóda sveta ho neposiela. Je možné, že aj
údaje budú null, preto je vhodné túto udalosť spárovať
s akciou inak.
zdroj – komponent, ktorý bol zdrojom údajovúdaje – údaje, ktoré boli prenesené, prípadne null, ak
je akcia NONE.akcia – akcia, ktorá bola (s údajmi) vykonaná; pozri aj opis metódy
ťahajSúboryGRobot.ťahanieUkončené(JComponent, Transferable, int)public void tahanieUkoncene(JComponent zdroj, Transferable údaje, int akcia)
Alias pre ťahanieUkončené.
public Color farbaAktívnehoSlova(String slovo)
Spustená pri overovaní zmeny farby, ktorou má byť vypísané určité
(zadané) aktívne slovo vnútornej konzoly. S pomocou tejto reakcie je
možné paušálne meniť farbu všetkých aktívnych slov, odlišovať farby
takých slov, ktoré už boli používateľom zvolené od takých, ktoré
doteraz používateľ ani raz nezvolil a podobne. Ak si farbu aktívneho
slova neželáme zmeniť, treba vrátiť hodnotu null.
slovo – identifikátor toho aktívneho slova vnútornej konzoly,
ktorého farba má byť ovplyvnenánullGRobot.farbaAktívnehoSlova(String),
Plátno.vypíšAktívneSlovo(String, Object[])public Color farbaAktivnehoSlova(String slovo)
Alias pre farbaAktívnehoSlova.
public void aktiváciaOdkazu()
Spustená po aktivácii hypertextového odkazu umiestneného v rámci
niektorej z inštancií triedy PoznámkovýBlok.
Užitočné doplňujúce údaje súvisiace s touto udalosťou poskytujú metódy
poslednýOdkaz a poslednýPoznámkovýBlok.
Metóda otvorWebovýOdkaz
umožňuje otvorenie poskytnutého odkazu v predvolenom webovom
prehliadači.
Upozornenie: Na to, aby klikanie na webové
odkazy v poznámkovom bloku fungovalo, nesmie byť poznámkový blok
v režime úprav – pozri metódy upraviteľný, upravuj a neupravuj.
Príklad:
Tento príklad ukazuje minimálne požiadavky, ktoré musia byť
splnené na to, aby fungovalo klikanie na webové odkazy v poznámkovom
bloku. Nepotrebnými bonusmi v tomto príklade sú len zmena veľkosti
plátna (volaním nadradeného konštruktora robota – super
v prvom riadku konštruktora odvodenej triedy), nastavenie
automatického rozťahovania (šírky a výšky) poznámkového bloku,
prípadne aj skrytie hlavného robota (podľa toho, za akú veľkú
prekážku považujeme jeho vizuálna prítomnosť na plátne).
Ostatné časti príkladu sú nevyhnutné.
importknižnica.*;publicclassOtvoriťWebovýOdkazextendsGRobot{privateOtvoriťWebovýOdkaz() {super(Svet.šírkaZariadenia(),Svet.výškaZariadenia());// Nie je nevyhnutné.PoznámkovýBlokblok =newPoznámkovýBlok(); blok.roztiahniNaŠírku();// Nie je nevyhnutné.blok.roztiahniNaVýšku();// Nie je nevyhnutné.blok.html("<a href=\"https://pdf.truni.sk/\">Klikni na odkaz.</a>"); blok.neupravuj();skry();// Tiež je možné vynechať.}@OverridepublicvoidaktiváciaOdkazu() {Svet.otvorWebovýOdkaz(ÚdajeUdalostí.poslednýOdkaz()); }publicstaticvoidmain(String[] args) {newOtvoriťWebovýOdkaz(); } }
Výsledok:

Výsledok príkladu použitia
aktivácie odkazu.
Poznámka: V príklade je použité prekrytie
reakcie aktiváciaOdkazu v triede
odvodenej od triedy GRobot. Princíp je však rovnaký
aj pri použití reakcie z triedy ObsluhaUdalostí.
GRobot.aktiváciaOdkazu()public void aktivaciaOdkazu()
Alias pre aktiváciaOdkazu.
public boolean konfiguráciaZmenená()
Výsledok (návratová hodnota) tejto reakcie môže byť overená pred
zápisom automatickej
konfigurácie. Ak iné súčasti programovacieho rámca oznámia, že
konfiguráciu je potrebné uložiť, tak táto reakcia vôbec nemusí byť
spustená. V prípade, že je spustená, tak ak je jej návratová hodnota
rovná true, tak bude spustená reakcia
zapíšKonfiguráciu.
(V opačnom prípade by bola uvedená reakcia spustená len
vtedy, ak by bola zmenená niektorá z predvolených položiek
automatickej
konfigurácie – t. j. napríklad používateľ by presunul hlavné okno
aplikácie, zmenil jeho veľkosť alebo by bol registrovaný niektorý
robot na uloženie konfigurácie.)
Príklad použitia je uvedený v hlavnej sekcii opisu triedy ObsluhaUdalostí.
Upozornenie: Pri prekrývaní tejto reakcie majte na pamäti, že nie je garantované jej automatické vykonanie pri ukončovaní aplikácie (ak vyššia vrstva zistí, že konfigurácia bola zmenená, tak ďalej nevyšetruje, či ju treba, alebo netreba ukladať a automaticky pristúpi k procesu uloženia konfigurácie). Vložte do tela tejto reakcie len taký kód, ktorý rýchlo overí, či nastali nejaké zmeny v konfigurácii, ktoré treba uložiť a vráti túto informáciu vyššej vrstve.
truečítajKonfiguráciu(Súbor),
zapíšKonfiguráciu(Súbor),
GRobot.konfiguráciaZmenená(),
Svet.použiKonfiguráciu()public boolean konfiguraciaZmenena()
Alias pre konfiguráciaZmenená.
public void čítajKonfiguráciu(Súbor súbor) throws IOException
Reakcia je vykonaná počas čítania automatickej konfigurácie. Je určená na
prečítanie hodnôt vlastnej konfigurácie. Príklad použitia je
uvedený v hlavnej sekcii opisu triedy ObsluhaUdalostí.
súbor – inštancia triedy Súbor reprezentujúca
otvorený konfiguračný súbor pripravený na čítanie údajovIOException – ak vznikla chyba vo vstupno-výstupnej
operáciikonfiguráciaZmenená(),
zapíšKonfiguráciu(Súbor),
GRobot.čítajKonfiguráciu(Súbor),
Svet.použiKonfiguráciu()public void citajKonfiguraciu(Súbor subor) throws IOException
Alias pre čítajKonfiguráciu.
IOExceptionpublic void zapíšKonfiguráciu(Súbor súbor) throws IOException
Reakcia je vykonaná počas zápisu automatickej konfigurácie. Je určená na
zápis hodnôt vlastnej konfigurácie. Príklad použitia je uvedený
v hlavnej sekcii opisu triedy ObsluhaUdalostí.
súbor – inštancia triedy Súbor reprezentujúca
otvorený konfiguračný súbor pripravený na zápis údajovIOException – ak vznikla chyba vo vstupno-výstupnej
operáciikonfiguráciaZmenená(),
čítajKonfiguráciu(Súbor),
GRobot.zapíšKonfiguráciu(Súbor),
Svet.použiKonfiguráciu()public void zapisKonfiguraciu(Súbor subor) throws IOException
Alias pre zapíšKonfiguráciu.
IOExceptionpublic void sekvencia(int kódSpracovania,
Object zdroj,
Object cieľ,
long stav,
long celkovo)
Táto reakcia súvisí s časovo náročným spracovaním údajov počas
práce s pevným diskom. Napríklad s čítaním a zápisom sekvencie
PNG súborov (pozri triedu Obrázok a jej metódy
čítaj(súbor)
a ulož(súbor, prepísať))
alebo kopírovaním
súborov a podobne. Typ udalosti, ktorá spôsobila spustenie tejto
reakcie je určený prvým parametrom – kódSpracovania.
Ostatné parametre sú naplnené podľa ich relevantnosti.
kódSpracovania – obsahuje kód činnosti, ktorá spôsobila
vznik tejto udalosti; aktuálne platné kódy sú:
ČÍTANIE_PNG_SEKVENCIE,
CHYBA_ČÍTANIA_PNG_SEKVENCIE, ZÁPIS_PNG_SEKVENCIE, ČÍTANIE_GIF_ANIMÁCIE, ZÁPIS_GIF_ANIMÁCIE, KOPÍROVANIE_SÚBOROV, PRIPÁJANIE_SÚBOROV, POROVNANIE_SÚBOROV, ODOVZDANIE_ÚDAJOV a PREVZATIE_ÚDAJOVzdroj – objekt súvisiaci so zdrojom alebo null;
napríklad v prípade kopírovania súborov je to reťazec s názvom zdrojového súboru, v prípade zápisu
PNG sekvencie je to obrázkový
objekt so zdrojovou snímkou animácie a podobnecieľ – objekt súvisiaci s cieľom alebo null;
napríklad pri kopírovaní súborov je to reťazec s názvom cieľového súboru; v prípade čítania PNG
sekvencie je to obrázkový objekt
s cieľovou snímkou animácie (čiže tou, do ktorej sú ukladané
prečítané údaje) a podobnestav – hodnota vyjadrujúca aktuálne spracovaný objem údajov
alebo -1, ak táto hodnota nie je známa alebo je
irelevantná; môže to byť počet spracovaných bajtov, poradové
číslo snímky a podobnecelkovo – hodnota vyjadrujúca celkový objem údajov, ktorý má byť
spracovaný alebo -1, ak táto hodnota nie je známa
alebo je irelevantná; môže to byť veľkosť súboru, celkový počet
snímok a podobnepublic void zastavenieAnimácie(Obrázok obrázok)
Táto reakcia je spustená pri zastavení prehrávania animácie
obrázka. Reakcia prijíma inštanciu obrázka, ktorého prehrávanie bolo
zastavené, pričom zastavenie prehrávania môže byť iniciované
automaticky (pozri aj metódu obrázka zastav)
alebo na podnet používateľa (programátora).
obrázok – inštancia obrázka, ktorého prehrávanie bolo zastavenépublic void zastavenieAnimacie(Obrázok obrázok)
Alias pre zastavenieAnimácie.
public void ukončenieProcesu(Svet.PríkazovýRiadok príkazovýRiadok, int návratovýKód)
Táto reakcia je spustená po ukončení externého procesu, ktorý
spustila zadaná inštancia triedy PríkazovýRiadok. Číselný kód, ktorý prijíma táto reakcia v druhom
parametri je návratový kód, ktorý vrátil proces pri svojom
ukončení.
príkazovýRiadok – inštancia príkazového riadka, ktorá proces
spustila (jej zdedenými metódami
ExecuteShellCommand.getRunCommand,
ExecuteShellCommand.getRunArguments,
ExecuteShellCommand.getCommandArray
a ExecuteShellCommand.getRunEnvironmentsa dajú
získať doplnkové informácie o procese v čase jeho spúšťania)návratovýKód – kód, ktorý vrátil externý proces pri ukončenípublic void ukoncenieProcesu(Svet.PríkazovýRiadok príkazovýRiadok, int návratovýKód)
Alias pre ukončenieProcesu.
public boolean ladenie(int riadok,
String príkaz,
int správa)
Táto reakcia je vykonávaná v režime ladenia. Návratová hodnota
reakcie je odpoveďou na otázku položenú režimom ladenia nadradenému procesu
prostredníctvom parametra správa. Hodnota parametra
správa môže byť jedna z nasledujúcich:
VYPÍSAŤ_PREMENNÉ | – | Má režim ladenia vypísať obsah všetkých premenných (pred začatím vykonávania skriptu)? |
VYPÍSAŤ_MENOVKY | – | Má režim ladenia vypísať (pred začatím vykonávania skriptu) definície všetkých menoviek, ktoré našiel počas analýzy skriptu? |
VYPÍSAŤ_RIADOK | – | Má režim ladenia vypísať aktuálny riadok skriptu? |
ČAKAŤ | – | Má režim ladenia čakať pred vykonaním riadka skriptu? Ak je odpoveď „áno,“ tak je táto správa posielaná opakovane (každých 350 ms). |
PRERUŠIŤ | – | Má režim prerušiť vykonávanie skriptu? |
ZABRÁNIŤ_VYKONANIU | – | Má režim v poslednej chvíli zabrániť vykonaniu príkazu s konkrétnymi hodnotami argumentov? |
VYPÍSAŤ_PRÍKAZ | – | Má režim vypísať ozvenu potvrdeného príkazu interaktívneho režimu? |
VYKONAŤ_PRÍKAZ | – | Má režim vykonať potvrdený príkaz interaktívneho režimu? |
UKONČENIE_SKRIPTU | – | Vykonávanie skriptu v samostatnom vlákne oznamuje, že jeho činnosť bola ukončená (bez chyby). |
UKONČENIE_CHYBOU | – | Vykonávanie
skriptu v samostatnom vlákne oznamuje, že jeho činnosť bola
ukončená chybou. V parametri riadok je číslo riadka, na
ktorom vznikla chyba a reťazec parametra príkaz obsahuje
v tomto prípade jednoduchý text chybového hlásenia. |
VYPÍSAŤ_SKRIPT | – | Má režim ladenia vypísať úplné znenie aktuálne vykonávaného skriptu? |
ČÍSELNÁ_PREMENNÁFAREBNÁ_PREMENNÁPOLOHOVÁ_PREMENNÁREŤAZCOVÁ_PREMENNÁ | – | Má režim vypísať obsah premennej prislúchajúceho údajového typu? Táto otázka vznikne vždy, keď sa zmení hodnota premennej. |
Ak je režim ladenia
zapnutý počas interaktívneho režimu, tak pred vykonaním každého potvrdeného
riadka vznikne otázka typu VYKONAŤ_PRÍKAZ.
Príklad:
importknižnica.*;publicclassRežimLadeniaInteraktívneextendsGRobot{privateRežimLadeniaInteraktívne() {interaktívnyRežim(true);Svet.režimLadenia(true);Svet.vypíš(this);newObsluhaUdalostí() {@OverridepublicvoidpotvrdenieÚdajov() {Farbazáloha =Svet.farbaTextu();Svet.farbaTextu(červená);Svet.vypíšRiadok("Chyba");Svet.farbaTextu(záloha); }@Overridepublicbooleanladenie(intriadok,Stringpríkaz,intspráva) {switch(správa) {caseVYPÍSAŤ_PRÍKAZ:caseVYKONAŤ_PRÍKAZ:returntrue; }if(správa <0)returntrue;Farbazáloha =Svet.farbaTextu();Svet.farbaTextu(purpurová);Svet.vypíšRiadok(" × ", príkaz);Svet.farbaTextu(záloha);returnfalse; } };Svet.registrujRobot();Svet.čítajKonfiguráciuSveta(); }publicstaticvoidmain(String[] args) {Svet.použiKonfiguráciu();Svet.nekresli();newRežimLadeniaInteraktívne();Svet.kresli();Svet.aktivujVstupnýRiadok(); } }
Poznámka: Komplexnejší príklad ladenia je
v opise triedy Skript v sekcii Príklad ladenia
skriptov.
riadok – poradové číslo riadka skriptu alebo hodnota −1
(ktorá signalizuje, že číslo riadka nie je známe)príkaz – príkaz skriptu, prípadne názov premennejspráva – typ správy, na ktorú sa režim pokúša získať odpoveď
od nadradeného procesu (pozri vyššie)správa; true – kladná odpoveď na
niektorú z vyššie položených otázok; false – záporná
odpoveď na niektorú z vyššie položených otázokSvet.interaktívnyRežim(boolean),
Svet.interaktívnaInštancia(String),
Svet.režimLadenia(boolean),
Svet.vykonajPríkaz(String),
Svet.vykonajSkript(String[])