Események és gyakornokok a java-ban
Minden esemény feldolgozása (gomb megnyomása, egérgombbal stb.) Egy esemény összekapcsolása az azt feldolgozó módszerrel. Az események feldolgozásának elve, a Java 2-től kezdődően, az esemény-delegálás modelljén alapul. Ebben a modellben van egy Event listener (EventListener), amely egy bizonyos típusú eseményt vár a forrásból, majd feldolgozza és visszaadja az ellenőrzést. A forrás egy olyan objektum, amely egy eseményt generál, ha belső állapota megváltozik, például a méretváltozások, a mezőértékek változása, az egér rákattint az űrlapra, vagy egy értéket választ ki a listából. A generáció után az esemény objektum feldolgozásra kerül feldolgozásra a forrásban regisztrált hallgatóegységként, a metódusai - eseménykezelői paramétereként.
A Listener Listener egy osztályobjektum, amely a java.awt.event csomagban definiált eseményekhez hallgató felületeket valósít meg. Az alkalmazott interfészekben deklarált megfelelő módszereket explicit módon kell végrehajtani a saját hallgatási osztályok létrehozásakor. Ezek a módszerek az eseménykezelők. A listenerhez továbbított forrásobjektum egy eseménykezelő argumentum. Az osztály objektuma - az esemény hallgatási blokkját be kell jegyezni a forrásmódszerbe
source.add EventListener (object_interviewer);
Ezután a hallgató objektum erre az eseményre reagál, és felhívja az "eseménykezelő" módszert. Az eseményfeldolgozás ezen logikája megkönnyíti az alkalmazás interfészrészének az operációs rendszertől való elválasztását, ami a modern alkalmazások tervezéséhez szükséges. Egy adott esemény hallgatóját eltávolíthatja a theremoveListener () módszer használatával.
Eseményforrások lehetnek a kezelőszervek: gombok (JButton, JCheckbox, JRadioButton), listák, menügombok. Az eseményeket keretek és appletek segítségével lehet létrehozni, például egér és kulcsfontosságú események. Az eseményeket az ablakok generálják, amikor kibontják, minimalizálják vagy kilépnek. Minden forrásosztály egy vagy több módot határoz meg, AddListener () vagy örökli ezeket a módszereket
Az esemény bekövetkezésekor minden regisztrált hallgatót értesítenek, és megkapják az eseményobjektum másolatát. Így a forrás felhívja az eseménykezelő módszert, amelyet az osztályban definiál, azaz a hallgatóegység, és az esemény objektumot paraméterként adja át a módszerhez. A gyakorlatban a belső osztályokat hallgató blokkként használják. Ebben az esetben az a módszer, amely a hallgató egységet paraméterként regisztrálja, ennek a belső osztálynak az objektumát használja.
A hallgatóegységben lévő minden egyes interfész az EventListener felületből örökölhető, és egy adott eseménytípus kezelésére van tervezve. Ennek során egy vagy több olyan módszert tartalmaz, amely mindig elfogad egy esemény objektumot egyetlen paraméterként, és bizonyos helyzetekben hívják. A táblázat felsorolja azokat az interfészeket és azok módszereit, amelyeket egy olyan eseményhallgatási osztályban kell végrehajtani, amely végrehajtja a megfelelő interfészt:
Egy esemény, amelyet egy adott helyzet esetén generálnak, majd feldolgozásra továbbít a regisztrált hallgatási egységnek, az eseményosztály objektum. Az eseményosztály hierarchiájának gyökere a java.util csomagból származó superclassEventObject. Ez az osztály két módszert tartalmaz: getSource (). amely visszaadja az eseményforrást és a toString () -t. amely az esemény sztring egyenértékét adja vissza. Az AWTEvent absztrakt osztály a java.awt csomagból az összes komponenshez kapcsolódó AWT esemény szuperklasszusa. A getID () módszer határozza meg a vizuális alkalmazás felhasználói műveleteinek eredményeként előforduló eseménytípust. Az alábbiakban felsorolunk néhány olyan eseményosztályt, amely az AWTEvent-ből származik. és a java.awt.event csomagban található:
ActionEvent - generált: a gomb megnyomásakor; Kattintson duplán a listaelemekre; menüpont kiválasztásakor;
AdjustmentEvent - generálva a görgetősáv megváltoztatásakor;
ComponentEvent - generált, ha az összetevő rejtett, áthelyezve, átméretezve vagy láthatóvá válik;
FocusEvent - generálódik, ha a komponens bemeneti fókuszt kap vagy veszít;
TextEvent - generálódik, amikor a szövegmező megváltozik;
ItemEvent - generálódik, amikor egy elemet kiválasztunk a listából.
Az InputEvent osztály a bemeneti események absztrakt szuperklasszusa (billentyűzet vagy egér). A billentyűzet bemeneti eseményei kezelik a KeyEvent osztályt. egér események - MouseEvent.
A billentyűzethez kapcsolódó eseménykezelő módszerek végrehajtásához meg kell határoznia a KeyListener felületen kijelölt három módszert. A gomb megnyomása eseményt generál KEY_PRESSED értékkel. Ez az eseménykezelő keyPressed () megnyomásához vezet. A kulcs felengedésekor egy KEY_RELEASED értékű esemény generálódik, és a keyReleased () kezelő végrehajtásra kerül. Ha egy kulcsot megnyomva generál egy szimbólumot, egy KEY_TYPED értékű eseményre vonatkozó értesítést küldenek és a keyTyped () kezelőt hívják.