Obsługa zdarzeń w Javie: co to jest i jak to działa?

Opublikowany: 2020-03-21

Każdy program z graficznym interfejsem użytkownika lub graficznym interfejsem użytkownika, w tym aplikacja Java dla systemu Windows, jest sterowany zdarzeniami. Aby program taki jak aplikacja Java był użyteczny, wymagane jest zapewnienie odpowiedzi na polecenia lub dane wejściowe użytkownika. Aplikacje Java mają zdarzenia do przechwytywania działań użytkownika. Zanim omówimy obsługę zdarzeń w Javie, zacznijmy od omówienia zdarzeń.

Spis treści

Co to jest wydarzenie?

Zdarzenia mają to samo znaczenie i wagę w każdym języku programowania. Są to efekty zewnętrzne, które są kontrolowane przez użytkownika i które sprawiają, że aplikacja zachowuje się zgodnie z predefiniowanym warunkiem wprowadzonym w celu rejestrowania odpowiedzi na różne działania użytkownika. Wydarzenie można nawet nazwać obiektem, który ożywa, gdy zmiana ma miejsce w GUI.

Przykłady zdarzeń w Javie obejmują wpisywanie znaków lub tekstu, kliknięcie pola kombi, kliknięcie przycisku lub jakąkolwiek inną czynność ze strony użytkownika. Każda taka akcja wyzwala zdarzenie, które następnie skutkuje utworzeniem obiektu zdarzenia, który jest odpowiedni dla tego zdarzenia.

Na przykład, jeśli użytkownik wprowadzi jakieś dane (działanie użytkownika, które wyzwala zdarzenie), aplikacja generuje dane wyjściowe, wyświetlając okno dialogowe lub wyświetlając informacje (obiekt zdarzenia). Te zachowania związane ze zdarzeniami są częścią mechanizmu obsługi zdarzeń Java i są obecne w bibliotece GUI Swing. Należy pamiętać, że źródło każdego zdarzenia i detektor zdarzeń muszą być połączone. Jeśli tak nie jest, wyzwolenie zdarzenia nie przyniesie żadnego działania.

Dlaczego program lub aplikacja musi być sterowana zdarzeniami?

Zanim pojawiła się obsługa zdarzeń, program musiał sam zebrać wszystkie informacje o użytkowniku, aby wiedzieć, co robi w danym momencie. Oznacza to, że po uruchomieniu lub zainicjowaniu program zawsze znajdował się w dużej pętli powtarzania, która czekała, aż użytkownik coś zrobi.

Program szukał więc dowolnej akcji – od naciśnięcia przycisku po ruch suwaka. Gdy dowiedział się, że coś się stało po stronie użytkownika, przygotował się do udzielenia odpowiedniej odpowiedzi. Nazywa się to sondowaniem. Chociaż ankietowanie pozwala wykonać zadanie, najczęściej okazuje się, że jest to zadanie zbyt trudne do opanowania i czasochłonne.

Przeczytaj: Pytania i odpowiedzi dotyczące wywiadu z programistami Java

Jeśli rozważymy użycie go do współczesnych aplikacji, nie spełnia on wymagań. Dwa główne powody sprawiają, że odpytywanie nie nadaje się do nowoczesnych aplikacji — odpytywanie umieszcza cały kod związany ze zdarzeniami w dużej pętli powtarzania, a interakcje zachodzące w tej lokalizacji są zbyt złożone. Ponadto odpytywanie powoduje, że program wchodzi w niekończącą się pętlę, co skutkuje wyczerpaniem cykli procesora bez żadnej gwarancji działania pochodzącego od użytkownika.

Zestaw narzędzi do abstrakcyjnych okien lub AWT posunął się naprzód i skojarzył się z innym modelem roboczym rozwiązywania problemu omówionego powyżej. Ten nowy model to programowanie sterowane zdarzeniami. Dzięki AWT nie ma potrzeby, aby program zwracał uwagę na zdarzenia generowane przez użytkowników. To środowisko wykonawcze Java wykonuje tę pracę. Nawiązuje do programu zaraz po wydarzeniu. Oszczędza cenny zasób przed wyczerpaniem i lepiej obsługuje interakcję z użytkownikiem.

Co to są programy obsługi zdarzeń w Javie i jak one działają?

Omówmy teraz główny temat, którym postanowiliśmy się zająć. Jak działa obsługa zdarzeń w Javie?

Jak wspomniano wcześniej, zdarzenia to działania użytkownika lub efekty zewnętrzne, które powodują, że aplikacja zachowuje się w określony sposób. W Javie za generowanie zdarzeń odpowiadają komponenty AWT, w tym pole tekstowe, przycisk i inne. Po wygenerowaniu zdarzenia detektor obsługuje je i wykonuje odpowiednią akcję.

Obsługa zdarzeń w Javie składa się z czterech elementów. Można je nawet nazwać programami obsługi zdarzeń.

1. Źródło zdarzenia : źródło zdarzenia, które generuje zdarzenie, to głównie składnik AWT. Możesz uruchomić komendę java.awt.component , aby poznać komponenty, które mogą, ale nie muszą odgrywać żadnej roli w generowaniu zdarzeń. Komponenty są podklasą oryginalnej klasy źródłowej. Źródłem zdarzeń może być wszystko, od pól tekstowych i pól kombi po przyciski i nie tylko.

Przeczytaj: Architektura MVC w Javie

2. Klasy zdarzeń : w Javie są to klasy, które odpowiadają za prawie każdy komponent, który ma cokolwiek wspólnego z generowaniem zdarzeń. Są one również nazywane typami zdarzeń. Oto kilka najpopularniejszych klas eventowych:

  • ActionEvent : ta klasa zdarzenia lub typ zdarzenia reprezentuje zdarzenie, które obejmuje kliknięcie elementu graficznego, takiego jak przycisk lub element listy. Odbiornikiem powiązanym z tą klasą jest ActionListener.
  • KeyEvent : ta klasa zdarzenia reprezentuje zdarzenie, które obejmuje naciśnięcie i zwolnienie klawisza. Odbiornikiem skojarzonym z tą klasą jest KeyListener.
  • ContainerEvent : ten typ zdarzenia reprezentuje zdarzenie, które ma miejsce w kontenerze GUI. Ta klasa jest powiązana z każdym zdarzeniem, w którym działanie użytkownika wiąże się z dodaniem lub usunięciem obiektu(ów) z GUI. Powiązanym odbiornikiem dla tej klasy jest ContainerListener.
  • MouseEvent : ta klasa reprezentuje wszystkie zdarzenia, które wymagają kliknięcia lub naciśnięcia myszy. Odbiornikiem tej klasy jest MouseListener.
  • WindowEvent : ta klasa lub typ zdarzenia reprezentuje zdarzenia, które obejmują dowolną akcję związaną z oknem. Ta klasa obejmuje zamykanie, aktywowanie lub dezaktywowanie okna. Powiązanym odbiornikiem dla tej klasy jest WindowListener.

3. Nasłuchiwania zdarzeń : są to interfejsy Javy, które udostępniają różne metody, które można wykorzystać w różnych zaimplementowanych klasach. Zadanie detektorów zdarzeń polega na nasłuchiwaniu zdarzeń, a następnie ich odpowiednim przetwarzaniu, gdy mają one miejsce. Prawie każdy komponent w Javie ma dedykowany detektor, który obsługuje każde zdarzenie generowane przez ten komponent. ActionListener obsługuje zdarzenia, które obejmują listy, przyciski, pola tekstowe i menu.

4. Adaptery zdarzeń : Jeśli program przedstawia zbyt wiele abstrakcyjnych metod, które słuchacz może przesłonić, kompilacja może być trudna. Na przykład, jeśli chcemy zamknąć klatkę, istnieje siedem abstrakcyjnych metod WindowListener, które musimy przesłonić. Aby zredukować złożoność i ciężkie kodowanie, Java ma adaptery zdarzeń. Adaptery zdarzeń są już przesłonięte metodami abstrakcyjnymi.

Wniosek

Należy pamiętać, że wiele źródeł zdarzeń i detektorów może wchodzić ze sobą w interakcje. Tak więc wiele zdarzeń należących do tej samej klasy może być obsługiwanych przez jeden detektor. Oznacza to, że jeden detektor może obsłużyć wszystkie zdarzenia, które obejmują te same komponenty, które wykonują podobne akcje. Na podobnych zasadach pojedyncze zdarzenie może być obsługiwane przez więcej niż jednego słuchacza, tylko jeśli pozwala na to projekt programu.

Ma sens?

TAk?

Nie?

Skontaktuj się z nami, aby dowiedzieć się o obszernej sesji dotyczącej obsługi zdarzeń w Javie. Nie pożałujesz!

Jeśli chcesz dowiedzieć się więcej o Javie do tworzenia stron internetowych, zapoznaj się z dyplomem PG upGrad i IIIT-B w zakresie pełnego tworzenia oprogramowania, który jest przeznaczony dla pracujących profesjonalistów i oferuje ponad 500 godzin rygorystycznych szkoleń, ponad 9 projektów i zadań, Status absolwentów IIIT-B, praktyczne, praktyczne projekty zwieńczenia i pomoc w pracy z najlepszymi firmami.

Wyląduj na swojej wymarzonej pracy

AKTUALIZACJA I DYPLOM PG IIIT-BANGALORE W ROZWOJU OPROGRAMOWANIA
Ucz się więcej