„Java“ įvykiai ir kaip jie veikia su renginių klausytojais

An įvykis „Java“ yra objektas, kuris sukuriamas, kai kas nors pasikeičia grafinėje vartotojo sąsajoje. Jei vartotojas paspaudžia mygtuką, paspaudžia papildomą laukelį arba įveda simbolius į teksto lauką ir pan., Tada įvyksta įvykis ir sukuriamas atitinkamas įvykio objektas. Šis elgesys yra „Java“ įvykių tvarkymo mechanizmo dalis ir įtrauktas į „Swing“ GUI biblioteką.

Pvz., Tarkime, kad mes turime JButtonas. Jei vartotojas spustelėja JButton, įvyks mygtuko paspaudimo įvykis, įvykis bus sukurtas ir išsiųstas atitinkamam renginio klausytojas (šiuo atveju „ActionListener“). Atitinkamas klausytojas turės įdiegtą kodą, kuris nustato veiksmą, kurio reikia imtis įvykus įvykiui.

Atminkite, kad įvykio šaltinis privalo būti suporuotas su renginio klausytoju, kitaip jo suaktyvinus nebus imtasi jokių veiksmų.

Kaip veikia renginiai

„Java“ renginių tvarkymas susideda iš dviejų pagrindinių elementų:

  • Įvykio šaltinis, kuris yra objektas, kuris sukuriamas įvykus įvykiui. „Java“ pateikia kelis šių įvykių šaltinių tipus, aptartus skyriuje Renginių tipai žemiau.
  • instagram viewer
  • Renginio klausytojas, objektas, kuris „klauso“ įvykių ir apdoroja juos, kai jie įvyksta.

„Java“ yra keletas įvykių ir klausytojų tipų: kiekvienas įvykio tipas yra susietas su atitinkamu klausytoju. Šioje diskusijoje apsvarstykime įprastą įvykio tipą, an veiksmo renginys atstovaujama Java klasės „ActionEvent“, kuris suaktyvinamas vartotojui spustelėjus mygtuką arba sąrašo elementą.

Vartotojui veikiant, „ActionEvent“ sukuriamas atitinkamą veiksmą atitinkantis objektas. Šiame objekte yra informacija apie įvykio šaltinį ir konkretus vartotojo atliktas veiksmas. Šis įvykio objektas perduodamas atitinkamam „ActionListener“ objekto metodas:

 void actionPerformed („ActionEvent e“)

Šis metodas yra vykdomas ir grąžina atitinkamą GUI atsakymą, kuris gali būti dialogo lango atidarymas ar uždarymas, atsisiųsti failą, pateikti skaitmeninį parašą ar bet kurį kitą daugybę veiksmų, galimų vartotojams sąsaja.

Renginių tipai

Čia pateikiami keli labiausiai paplitę „Java“ įvykių tipai:

  • „ActionEvent“: Atstovauja spustelėtą grafinį elementą, pavyzdžiui, mygtuką ar elementą sąraše. Susijęs klausytojas: „ActionListener“.
  • „ContainerEvent“: Atspindi įvykį, kuris įvyksta pačiame GUI sudėtiniame rodinyje, pavyzdžiui, jei vartotojas prideda arba pašalina objektą iš sąsajos. Susijęs klausytojas: „ContainerListener“.
  • „KeyEvent“: Vaizduoja įvykį, kuriame vartotojas paspaudžia, įveda arba atleidžia raktą. Susijęs klausytojas: „KeyListener“.
  • „WindowEvent“: Vaizduoja įvykį, susijusį su langu, pavyzdžiui, kai langas yra uždarytas, įjungtas arba išjungtas. Susijęs klausytojas: „WindowListener“.
  • „MouseEvent“: Atspindi bet kokį įvykį, susijusį su pele, pvz., Kai pele spustelėjama ar paspaudžiama. Susijęs klausytojas: „MouseListener“.

Atminkite, kad keli klausytojai ir įvykių šaltiniai gali bendrauti vienas su kitu. Pvz., Vienas klausytojas gali užregistruoti kelis įvykius, jei jie yra to paties tipo. Tai reiškia, kad panašų komponentų rinkinį, kuris atlieka to paties tipo veiksmus, vienas įvykio klausytojas gali tvarkyti visus įvykius. Panašiai, vienas įvykis gali būti susietas su keliais klausytojais, jei tai tinka programos dizainui (nors tai rečiau).