Standardni zahtevnik: prosim, da, v kolikor želite to besedilo objaviti kje drugje, to storite tako, da linkate povezavo do te strani, ne pa da kopirate besedilo na drugo stran. S pisanjem teh nasvetov si (brez pričakovanja plačila) trgam dragocen čas. Tudi: za kakršne koli napake ne odgovarjam (vse je možno, saj je to besedilo pisano na roko). Če opazite kakšno napako, me popravite. Rade volje bom popravil, priznal svojo zmoto in se vam zahvalil
NAJ TI NAVETI NE BODO (EDINA?) OSNOVA ZA OPRAVLJANJE IZPITA! ZA MOREBITNI NEOPRAVLJEN IZPIT NE ODGOVARJAM!
Kazalo
Dogodkovni model:
Dogodkovni model
Če želimo v AWT prožiti in se odzivati na dogodke, ki jih grafični gradniki povzročajo, vključimo skupino knjižnic
java.awt.event.*;
Glavni razredi in vmesniki, ki jih uporabljamo, so:
- vse vrste *Listener-jev (poslušalcev: ActionListener, ...)
- vse vrste *Event-ov (dogodkov: ActionEvent, MouseEvent, ...)
- *Adapter-ji (WindowAdapter, ...)
Če želimo, da je naš program obveščen o tem, kdaj uporabnik npr. klikne na gumb, moramo v Javi storiti kopico stvari. Velja, da se zadevo da implementirati na tisoč in en različen način. Najprej je treba ustvariti okno z grafičnimi gradniki. Pa recimo, da smo ustvarili razred Okno, v katerem ustvarimo okno in na njem dva gumba:
gumb1 in
gumb2.
Najprej moramo ustvariti poslušalca, ki bo imel to funkcijo, da bo "poslušal", kdaj bo uporabnik kliknil na gumb. Tega poslušalca bomo nato registrirali na dogodke obeh gumbov, tako da bo vedno dobil podrobne podatke o vsakem dogodku določenega tipa, na katerega smo ga registrirali.
Poslušalec
Poslušalec je razred, ki implementira nek Listen-er. V našem primeru bomo implementirali vmesnik
ActionListener, ker pač želimo, da bojo primerki tega razreda obveščeni o "dejanjih" gumbov, na katere so registrirani (pri gumbih je dejanje klik). Razred lahko v glavnem implementiramo na tri različne načine:
- kot običajen razred na način, ki smo ga najbolj vajeni:
class Poslusalec implements ActionListener {...}
...
gumb1.addActionListener(new Poslusalec());
Ta metoda je dobra za to, če želimo poslušalca logično ločiti od ostalega programa
- tako, da sam razred, v katerem imamo referenco do grafičnega gradnika, razširimo s tem, da mu dodamo implementacijo poslušalca:
public class Okno extends Frame implements ActionListener {...}
...
gumb1.addActionListener(this);
Ta metoda je dobra, če želimo dostopati do privatnih reči razreda Okno, je pa slaba izbira, če nameravamo uporabiti več različnih poslušalcev istega tipa, saj lahko na tak način implementiramo na primer le en ActionEvent (različnih tipov poslušalcev (ActionEvent, WindowEvent, ...) lahko en sam razred implementira seveda poljubno mnogo s tem, da implementira ustrezne vmesnike)
- kot anonimni notranji razred kar tam, kjer ga potrebujemo:
gumb1.addActionListener(new ActionListener() {...});
Ta metoda je dobra, če se želimo odzvati z nečim tako enostavnim in edinstvenim, da tega razreda ne bomo potrebovali več kot enkrat, je pa slaba izbira, če nameravamo dostopati do spremenljivk in metod, ki so zunaj tega razreda. Anonimni notranji razred lahko namreč dostopa le do final-nih objektov.
Našega Poslušalca moremo zaradi vmesnika ActionListener dopolniti z implementacijo metode
public void actionPerformed(ActionEvent e) {...}
V tej metodi nato povemo, kaj želimo, da se zgodi ob kliku na gumb, na katerega bo Poslušalec registriran. ActionEvent
e nam pove med drugim tudi, kateri gradnik od registriranih je sprožil ta dogodek. En sam primerek našega Poslušalca se lahko namreč registrira na več različnih gumbov in metoda
e.getSource()
nam vrne referenco na gumb, ki smo ga pravkar kliknili. Če naš Poslušalec počne na primer naslednje:
if(e.getSource()==gumb1) System.out.println("Prvi" );
se bo izpisalo sporočilo "Prvi", vendar le v primeru, če je pritisnjen gumb bil
gumb1.
V splošnem si je torej treba zapomniti:
- en sam Poslušalec je lahko registriran na poljubno veliko dogodkov (npr. gumbov)
- en sam gumb lahko ima registriranih poljubno mnogo Poslušalcev. Samo tisti, ki so registrirani na dogodke, bodo informacijo o le-teh prejeli
- en sam Poslušalec lahko implementira več kot en vmesnik za poslušalca. Če npr. en razred implementira ActionListener in WindowListener, se lahko registrira tako na klike gumbov, kot na dogodke, povezane z oknom.
Povezava do primera programa je na dnu tega dokumenta.
Dogodki
Beseda
Dogodek v tem poglavju pomeni vsak tak razred, katerega ime se konča z
*Event, na primer ActionEvent, WindowEvent itd., medtem ko ima beseda
dogodek običajen knjižni pomen.
Vsak razred za poslušalca ima svojega istoimenskega "kolega", razrede, ki se končajo z
*Event, pravimo pa jim Dogodki. Namen Dogodkov je, da dajo poslušalcu informacijo o tem, kakšen dogodek se je pripetil. Vsi Dogodki v AWT do izpeljani iz razreda
java.util.EventObject, kar pomeni, da imajo vsi metodo
getSource()
Ta metoda vrne objekt, na katerem je bil dogodek izvršen. Če smo na primer kliknili na
gumb, na katerega dogodke je registriran
ActionListener, se bo pri tem tvoril objekt tipa
ActionEvent, s pomočjo katerega bomo lahko preko metode getSource() dobili referenco do gumba, na katerega smo kliknili.
Ostale metode se od Dogodka do Dogodka razlikujejo, saj se vsak tip Dogodka uporablja v drugačni situaciji. Podrobnosti so v enem od naslednjih poglavij.
Adapterji
Vmesniki Poslušalcev, ki imajo več kot eno metodo, imajo v Javi posebne razrede, imenovane Adapterje. Adapterji so prazne implementacije teh Poslušalcev in so samo za lažje programiranje. Vmesnik
WindowListener ima na primer kar 7 metod (za dogodke, kot so pridobitev žarišča, izklop okna, minimiranje okna ipd). Ko ustvarjamo Poslušalca, ki implementira ta vmesnik, moremo vse te metode implementirati, četudi nas ne zanimajo.
Namesto tega pa lahko uporabimo kar Adapter. Zavedati se je treba, da je Adapter že razred, ki implementira ustrezen vmesnik za poslušalca. WindowAdapter je torej razred, ki implementira WindowListener-ja, le da so te implementacije prazne (ne delajo ničesar). Adapterji so sicer abstraktni, a to le zato, da jih ne moremo nastaviti kot poslušalce. To bi bilo namreč nesmiselno, ker implementacije znotraj Adapterjev tako ali tako ne počno ničesar. Uporabljajo pa se tako, da ustvarimo nov razred, ki podeduje od ustreznega Adapterja, v njem pa nato implementiramo metode, ki bi jih sicer pri vmesniku, vendar nam ni treba implementirati vseh, le tiste, ki nas zanimajo. Paziti je treba le na tiskarske hrošče, saj nas Java prevajalnik ne bo opozoril, da nismo implementirali metode, če se bomo zmotili pri nazivu le-te.
Ena prvih težav, na katero naletimo, če programiramo z AWT-jem je, da je gumb za zaprtje okna neaktiven in se ga ne da na lep način zapreti. Za vsako okno (objekt Frame) registriramo poslušalca
WindowListener, ki ima med drugimi tudi metodo
void windowClosing(WindowEvent e)
Ta metoda se požene, ko kliknemo gumb za zaprtje okna. Lahko naredimo nov razred, ki implementira vmesnik WindowListener, in implementiramo vseh 7 metod, ki jih ta vmesnik zahteva, lahko pa naredimo enostaven anonimni notranji razred, ki podeduje od WindowAdapter-ja, in ga registriramo na okenske dogodke našega okna:
mojeOkno.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
Okno se bo sedaj ob kliku gumba za zaprtje dejansko zaprlo in program se bo končal.
Referenca
Sledi tabelirana referenca, ki vam bo v pomoč pri programiranju z dogodki v AWT-ju.
Ime Poslušalca | ActionListener |
Metode Poslušalca | void actionPerformed(ActionEvent e) |
| se zažene, ko se sproži dejanje |
Uporaba poslušalca | (List)seznam.addActionListener(ActionListener l) |
| actionPermormed se pokliče, ko uporabnik dvoklikne na seznam ali ko pritisne Enter, ko ima seznam fokus |
| (TextField)besedilnaSkatlica.addActionListener(ActionListener l) |
| actionPerformed se pokliče, ko uporabnik stisne Enter medtem, ko piše |
| (Button)gumb.addActionListener(ActionListener l) |
| actionPerformed se pokliče, ko uporabnik pritisne gumb |
| (MenuItem)izbiraMenija.addActionListener(ActionListener l) |
| actionPerformed se pokliče, ko uporabnik izbere nekaj v meniju |
Ima Adapter? | NE, ker vmesnik zahteva le implementacijo ene metode |
Ime Dogodka | ActionEvent e |
Nekatere metode | e.getSource() |
| Vrne referenco do objekta, nad katerim je bil izvršen dogodek |
| e.getActionCommand() |
| Vrne String, ki predstavlja zapis, povezan z izbranim predmetom (npr. besedilo v gumbu) |
Nazaj na začetek referenc
Ime Poslušalca | AdjustmentListener |
Metode Poslušalca | void adjustmentValueChanged(AdjustmentEvent e) |
| se zažene, ko se spremeni nek spremenljiv objekt |
Uporaba poslušalca | (Scrollbar)drsnik.addAdjustmentListener(AdjustmentListener l) |
| adjustmentValueChanged se pokliče, ko uporabnik premakne drsnik |
| (ScrollPaneAdjustable)drsnikSP.addAdjustmentListener(AdjustmentListener l)
Pozor! Ti drsniki se uporabljajo z razredom ScrollPane! |
| adjustmentValueChanged se pokliče, ko uporabnik premakne drsnik |
Ima Adapter? | NE, ker vmesnik zahteva le implementacijo ene metode |
Ime Dogodka | AdjustmentEvent e |
Nekatere metode | e.getSource() |
| Vrne referenco do objekta, nad katerim je bil izvršen dogodek |
| e.getValue() |
| Vrne Integer, in sicer trenutno vrednost/pozicijo drsnika |
Nazaj na začetek referenc
Ime Poslušalca | ComponentListener |
Metode Poslušalca | void componentHidden(ComponentEvent e) |
| se zažene, ko postane komponenta nevidna |
| void componentMoved(ComponentEvent e) |
| se zažene, ko se komponenta premakne |
| void componentResized(ComponentEvent e) |
| se zažene, ko se komponenti spremeni velikost |
| void componentShown(ComponentEvent e) |
| se zažene, ko postane komponenta vidna |
Uporaba poslušalca | (Component)komponenta.addComponentListener(ComponentListener l) |
| ComponentListener se lahko registrira na katerikoli komponenti AWT-ja (gumb, okvirček z besedilom, ...). Katera metoda se proži kdaj, razberete iz metod Poslušalca. |
Ima Adapter? | DA, imenuje se ComponentAdapter |
Ime Dogodka | ComponentEvent e |
Nekatere metode | e.getSource() |
| Vrne referenco do objekta (tipa Object), nad katerim je bil izvršen dogodek |
| e.getComponent() |
| Vrne referenco do komponente (tipa Component), nad katero je bil izvršen dogodek |
Nazaj na začetek referenc
Ime Poslušalca | ContainerListener |
Metode Poslušalca | void componentAdded(ContainerEvent e) |
| se zažene, ko je bila dodana nova komponenta na vmesnik |
| void componentRemoved(ContainerEvent e) |
| se zažene, ko je bila komponenta odvzeta iz vmesnika |
Uporaba poslušalca | (Container)vsebnik.addContainerListener(ContainerListener l) |
| ContainerListener se lahko registrira na kateremkoli vsebniku AWT-ja (panel, frame, dialog, ...). Katera metoda se proži kdaj, razberete iz metod Poslušalca. |
Ima Adapter? | DA, imenuje se ContainerAdapter |
Ime Dogodka | ContainerEvent |
Nekatere metode | e.getSource() |
| Vrne referenco do objekta, nad katerim je bil izvršen dogodek |
| e.getChild() |
| Vrne referenco do komponente, ki je bila dodana/odvzeta iz vsebnika |
| e.getContainer() |
| Vrne referendo do vsebnika, kateremu je bilo kaj dodano/odvzeto |
Nazaj na začetek referenc
Ime Poslušalca | FocusListener |
Metode Poslušalca | void focusGained(FocusEvent e) |
| se zažene, ko komponenta pridobi fokus (ko ima kurzor oz. je označena) |
| void focusLost(FocusEvent e) |
| se zažene, ko komponenta izgubi fokus |
Uporaba poslušalca | (Component)komponenta.addFocusListener(FocusListener l) |
| FocusListener se lahko registrira na katerikoli komponenti AWT-ja (gumb, okvirček z besedilom, ...). Katera metoda se proži kdaj, razberete iz metod Poslušalca. |
Ima Adapter? | DA, imenuje se FocusAdapter |
Ime Dogodka | FocusEvent e |
Nekatere metode | e.getSource() |
| Vrne referenco do objekta (tipa Object), nad katerim je bil izvršen dogodek |
| e.getOppositeComponent() |
| Vrne referenco do komponente (tipa Component), kateri se je zgodilo ravno obratno kot tej. Če je ta komponenta dobila fokus, vrne referenco od komponente, ki je fokus zaradi tega izgubila in obratno |
Nazaj na začetek referenc
Ime Poslušalca | ItemListener |
Metode Poslušalca | void itemStateChanged(ItemEvent e) |
| se zažene, ko se spremeni stanje predmeta |
Uporaba poslušalca | (CheckboxMenuItem)seznamIzbirMenija.addItemListener(ItemListener l) |
| itemStateChanged se pokliče, ko uporabnik izbere eno od izbir v seznamu menija |
| (Choice)spustniSeznam.addItemListener(ItemListener l) |
| itemStateChanged se pokliče, ko uporabnik izbere eno od izbir spustnega seznama |
| (Checkbox)izbira.addItemListener(ItemListener l) |
| itemStateChanged se pokliče, ko uporabnik nastavi/odvzame "kljukico" izbirnemu elementu |
| (List)seznam.addItemListener(ItemListener l) |
| itemStateChanged se pokliče, ko uporabnik izbere eno od izbir seznama |
Ima Adapter? | NE, ker vmesnik zahteva le implementacijo ene metode |
Ime Dogodka | ItemEvent e |
Nekatere metode | e.getSource() |
| Vrne referenco do objekta, nad katerim je bil izvršen dogodek |
| e.getItem() |
| Vrne referenco do objekta, ki je bil izbran |
| e.getStateChange() |
| Vrne Integer, ki nakazuje, če je komponenta izbrana ali ne |
Nazaj na začetek referenc
Ime Poslušalca | KeyListener |
Metode Poslušalca | void keyPressed(KeyEvent e) |
| se zažene, ko je uporabnik pritisnil tipko (ni je še spustil) na tipkovnici |
| void keyReleased(KeyEvent e) |
| se zažene, ko je uporabnik spustil tipko (do sedaj jo je držal) na tipkovnici |
| void keyTyped(KeyEvent e) |
| se zažene, ko je uporabnik pritisnil in spustil kakšno tipko, ki v ugodnih pogojih izpiše znak (črko, številko, presledek, a ne npr. Ctrl, Shift...) |
Uporaba poslušalca | (Component)komponenta.addKeyListener(KeyListener l) |
| KeyListener se lahko registrira na katerikoli komponenti AWT-ja (gumb, okvirček z besedilom, ...). Seveda je smiselno, da ga registrirate na komponentah, ki so zmožni prevzeti fokus za tipkovnico. Katera metoda se proži kdaj, razberete iz metod Poslušalca. |
Ima Adapter? | DA, imenuje se KeyAdapter |
Ime Dogodka | KeyEvent e |
Nekatere metode | e.getSource() |
| Vrne referenco do objekta (tipa Object), nad katerim je bil izvršen dogodek |
| e.getKeyChar() |
| Vrne znak tipa char, ki predstavlja znak, povezan s pritisnjeno tipko |
| e.getKeyCode() |
| Vrne kodo znaka pritisnjene tipke (int) |
| e.getKeyLocation() |
| Vrne kodo pozicije pritisnjene tipke (int) |
| KeyEvent.getKeyModifiersText(int kodaZnaka) |
| statična metoda, ki vzame kodo znaka in jo pretvori v zapis, ki predstavlja, katere dodatne tipke so tvorile pritisnjeno kombinacijo (npr. "Shift" ali "Ctrl+Shift") |
| KeyEvent.getKeyText(int keyCode) |
| statična metoda, ki vzame kodo znaka in jo pretvori v zapis, ki predstavlja, katera tipka je bila pritisnjena (npt. "F1" ali "HOME" ali "A") |
| e.isActionKey() |
| Vrne TRUE, če je pritisnjen gumb akcijski (npr. F1, Home ipd.), FALSE, če ni |
Nazaj na začetek referenc
Ime Poslušalca | MouseListener |
Metode Poslušalca | void mouseClicked(MouseEvent e) |
| se zažene, ko uporabnik klikne na miškino tipko (nad komponento) |
| void mouseEntered(MouseEvent e) |
| se zažene, ko miškin kazalec pride v območje komponente |
| void mouseExited(MouseEvent e) |
| se zažene, ko miškin kazalec zapusti območje komponente |
| mousePressed(MouseEvent e) |
| se zažene, ko uporabnik pritisne (a ne spusti) miškino tipko (nad komponento) |
| mouseReleased(MouseEvent e) |
| se zažene, ko uporabnik spusti miškino tipko (nad komponento) |
Uporaba poslušalca | (Component)komponenta.addMouseListener(MouseListener l) |
| MouseListener se lahko registrira na katerikoli komponenti AWT-ja (gumb, okvirček z besedilom, ...). Katera metoda se proži kdaj, razberete iz metod Poslušalca. |
Ima Adapter? | DA, imenuje se MouseAdapter |
Ime Dogodka | MouseEvent e |
Nekatere metode | e.getSource() |
| Vrne referenco do objekta (tipa Object), nad katerim je bil izvršen dogodek |
| e.getButton() |
| Vrne številko tipa int, ki predstavlja, katera tipka/kombinacija tipk je bila pritisnjena/kliknjena na miški. Za več informacij glejte Java API |
| e.getX() |
| Vrne vodoravno oddaljenost (v pixlih) miškinega kazalca od levega roba objekta |
| e.getY() |
| Vrne navpično oddaljenost (v pixlih) miškinega kazalca od zgornjega roba objekta |
| e.getPoint() |
| Vrne objekt tipa Point, ki vsebuje zgornji dve informaciji |
Nazaj na začetek referenc
Ime Poslušalca | MouseMotionListener |
Metode Poslušalca | void mouseMoved(MouseEvent e) |
| se zažene, ko uporabnik premakne miško preko komponente (nad katero se proži dogodek). Proži se mnogo takih dogodkov |
| void mouseDragged(MouseEvent e) |
| se zažene, ko uporabnik "prime" komponento, in jo potegne (Drag&Drop). V določenih primerih, ko je Drag&Drop na sistemski ravni, se ta metoda ne zažene |
Uporaba poslušalca | (Component)komponenta.addMouseMotionListener(MouseMotionListener l) |
| MousesMotionListener se lahko registrira na katerikoli komponenti AWT-ja (gumb, okvirček z besedilom, ...). Katera metoda se proži kdaj, razberete iz metod Poslušalca. |
Ima Adapter? | DA, imenuje se MouseMotionAdapter |
Ime Dogodka | MouseEvent e |
Nekatere metode | e.getSource() |
| Vrne referenco do objekta (tipa Object), nad katerim je bil izvršen dogodek |
| e.getButton() |
| Vrne številko tipa int, ki predstavlja, katera tipka/kombinacija tipk je bila pritisnjena/kliknjena na miški. Za več informacij glejte Java API |
| e.getX() |
| Vrne vodoravno oddaljenost (v pixlih) miškinega kazalca od levega roba objekta |
| e.getY() |
| Vrne navpično oddaljenost (v pixlih) miškinega kazalca od zgornjega roba objekta |
| e.getPoint() |
| Vrne objekt tipa Point, ki vsebuje zgornji dve informaciji |
Nazaj na začetek referenc
Ime Poslušalca | MouseWheelListener |
Metode Poslušalca | void mouseWheelMoved(MouseWheelEvent e) |
| se zažene, ko uporabnik zavrti miškino kolo za brskanje (kolico) |
Uporaba poslušalca | (Component)komponenta.addMouseWheelListener(MouseWheelListener l) |
| MousesWheelListener se lahko registrira na katerikoli komponenti AWT-ja (gumb, okvirček z besedilom, ...). Katera metoda se proži kdaj, razberete iz metod Poslušalca. |
Ima Adapter? | NE, ker vmesnik zahteva le implementacijo ene metode |
Ime Dogodka | MouseWheelEvent e |
Nekatere metode | e.getSource() |
| Vrne referenco do objekta, nad katerim je bil izvršen dogodek |
| e.getScrollAmount() |
| Vrne število tipa int, ki predstavlja število enot, za katere se je obrnila kolica |
| e.getWheelRotation() |
| Vrne število tipa int, ki predstavlja število "klikov" kolice pri zasuku |
Nazaj na začetek referenc
Ime Poslušalca | TextListener |
Metode Poslušalca | void textValueChanged(TextEvent e) |
| se zažene, ko se komponenti spremeni besedilo |
Uporaba poslušalca | (TextComponent)tekstovnaKomponenta.addTextListener(TextListener l) |
| TextListener se lahko registrira na katerikoli tekstovni komponenti AWT-ja (TextArea, TextField). Katera metoda se proži kdaj, razberete iz metod Poslušalca. |
Ima Adapter? | NE, ker vmesnik zahteva le implementacijo ene metode |
Ime Dogodka | TextEvent e |
Nekatere metode | e.getSource() |
| Vrne referenco do objekta, nad katerim je bil izvršen dogodek |
Nazaj na začetek referenc
Ime Poslušalca | WindowFocusListener |
Metode Poslušalca | void windowGainedFocus(WindowEvent e) |
| se zažene takrat, ko pride okno ali katerakoli njegova komponenta v ospredje (ko dobi fokus) |
| windowLostFocus(WindowEvent e) |
| se zažene takrat, ko okno ali katerakoli njegova komponenta izgubi fokus |
Uporaba poslušalca | (Window)okno.addWindowFocusListener(WindowFocusListener l) |
| WindowFocusListener se lahko registrira na kateremkoli oknu AWT-ja (Frame, Dialog, ...). Katera metoda se proži kdaj, razberete iz metod Poslušalca. |
Ima Adapter? | DA, imenuje se WindowAdapter (ta adapter ni le za WindowFocusListener) |
Ime Dogodka | WindowEvent e |
Nekatere metode | e.getSource() |
| Vrne referenco do objekta, nad katerim je bil izvršen dogodek |
| e.getOppositeWindow() |
| Vrne referenco do okna, ki je izgubilo fokus, ker ga je trenutno pridobilo, oz. ki je pridobilo fokus, ko ga je trenutno izgubilo |
Nazaj na začetek referenc
Ime Poslušalca | WindowListener |
Metode Poslušalca | void windowActivated(WindowEvent e) |
| se zažene, ko postane okno trenutno okno (okno v ospredju) |
| void windowClosed(WindowEvent e) |
| se zažene, ko se je okno že zaprlo zaradi ukaza za zaprtje |
| void windowClosing(WindowEvent e) |
| se zažene med procesom zapiranja okna (ko jo zapre uporabnik) |
| void windowDeactivated(WindowEvent e) |
| se zažene, ko okno izgubi status trenutnega okna (okna v ospredju) |
| void windowDeiconified(WindowEvent e) |
| se zažene, ko se okno obnovi iz minimiranega stanja |
| void windowIconified(WindowEvent e) |
| se zažene, ko se okno minimira iz normalnega stanja |
| windowOpened(WindowEvent e) |
| se zažene, ko se okno prvič prikaže |
Uporaba poslušalca | (Window)okno.addWindowListener(WindowListener l) |
| WindowListener se lahko registrira na kateremkoli oknu AWT-ja (Frame, Dialog, ...). Katera metoda se proži kdaj, razberete iz metod Poslušalca. |
Ima Adapter? | DA, imenuje se WindowAdapter (ta adapter ni le za WindowListener) |
Ime Dogodka | WindowEvent e |
Nekatere metode | e.getSource() |
| Vrne referenco do objekta, nad katerim je bil izvršen dogodek |
| e.getOppositeWindow() |
| Vrne referenco do okna, ki je bilo vmešano v ta dogodek |
Nazaj na začetek referenc
Ime Poslušalca | WindowStateListener |
Metode Poslušalca | void windowStateChanged(WindowEvent e) |
| se zažene, ko se oknu spremeni stanje |
Uporaba poslušalca | (Window)okno.addWindowStateListener(WindowStateListener l) |
| WindowStateListener se lahko registrira na kateremkoli oknu AWT-ja (Frame, Dialog, ...). Katera metoda se proži kdaj, razberete iz metod Poslušalca. |
Ima Adapter? | DA, čeprav vmesnik zahteva le implementacijo ene metode. Imenuje se WindowAdapter (ta adapter ni le za WindowStateListener) |
Ime Dogodka | WindowEvent e |
Nekatere metode | e.getSource() |
| Vrne referenco do objekta, nad katerim je bil izvršen dogodek |
| e.getOppositeWindow() |
| Vrne referenco do drugega okna, ki je bilo vmešano v ta dogodek |
Nazaj na začetek referenc
Osnovni Primer odzivanja na dogodke v AWT:
Poslusaj1.java