Programowanie zdarzeniowe

Podobne dokumenty
Programowanie zdarzeniowe

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Programowanie graficznych interfejsów użytkownika

Obsługa zdarzeń. Wykład 4

Podstawowe informacje o apletach

setdefaultcloseoperation(jframe.exit_on_close);//obsługa zamykania aplikacji setvisible(true); } //wyświetlenie okna

Java - interfejs graficzny

Programowanie obiektowe

Programowanie obiektowe

Kontenery i komponenty graficzne

Tworzenie elementów graficznych

Java SE Laboratorium nr 5. Temat: Obsługa zdarzeń

Informatyka I. Interfejs GUI wysokiego poziomu. Biblioteka Swing. Programowanie zdarzeniowe. Politechnika Warszawska Wydział Transportu 2018

Kurs programowania. Wykład 4. Wojciech Macyna. 23 marca 2016

Graphic User Interfaces pakiet Swing

Język Java część 2 (przykładowa aplikacja)

Obsługa zdarzeń w JAVIE ((ActionListener,ItemListener,TableModelListener))

Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com

JAVA. Strumienie wejścia i wyjścia. Pliki - zapis i odczyt

Interfejsy w Java. Przetwarzanie równoległe. Wątki.

Marcin Luckner Warsaw University of Technology Faculty of Mathematics and Information Science

Programowanie w Javie Wykład 6 Okienka w Javie (AWT)

Wykład 12: Obsługa Zdarzeń

Języki i metody programowania Java Obsługa zdarzeń - przykłady

GUI - projektowanie interfejsów cz. II

Tworzenie i obsługa graficznego interfejsu uŝytkownika

Programowanie obiektowe

Podstawy Języka Java

Dokumentacja do API Javy.

Interfejsy i klasy wewnętrzne

Programowanie Obiektowe GUI

LABORATORIUM 7 Cel: 1_1

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

Scenariusz Lekcji. Część organizacyjna:

Programowanie graficznego interfejsu użytkownika. Wykład 8. Maciej Wołoszyn 10 maja 2006

SWING c.d. przydatne narzędzia: JFileChooser, JOptionPane. drag'n drop, menu kontekstowe.

Aplikacja wielowątkowa prosty komunikator

SWING. dr Jarosław Skaruz

Programowanie w języku Java WYKŁAD

JavaFX. Zaawansowane technologie Javy 2019

Zastosowanie słuchaczy zdarzeń wg

Programowanie komponentowe

Informatyka i Ekonometria Programowanie komputerów Ćwiczenia Tworzenie aplikacji wykorzystaniem graficznego interfejsu użytkownika - Swing.

Klasy abstrakcyjne. Klasę abstrakcyjną tworzymy przy pomocy modyfikatora abstract

Grafika i komunikacja człowiek komputer Laboratorium. Część 1: Wstęp do grafiki

Interaktywne aplety obsługa zdarzeń, uruchamianie apletu przez przeglądarkę lub maszynę wirtualną Javy. Tworzenie łącz w apletach

Przykładowe roz wiązanie:

Aplikacje w środowisku Java

Java niezbędnik programisty spotkanie nr 12. Graficzny interfejs użytkownika

Programowanie graficznych interfejsów uŝytkownika

Aplikacja wielow tkowa prosty komunikator

Programowanie w środowisku graficznym- wykład 9 Programowanie GUI cz1

POLIMORFIZM, INTERFEJSY, PROGRAMOWANIE ZDARZENIOWE

Programowanie Obiektowe Java

Podstawy Języka Java

Programowanie zdarzeniowe

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

Architektura interfejsu użytkownika

Podstawy Swing. Tomasz Borzyszkowski

JAVA W SUPER EXPRESOWEJ PIGUŁCE

PWSG Ćwiczenia 12. Wszystkie ukończone zadania należy wysłać na adres: lub

Aplikacje w środowisku Java

Podstawy tworzenia aplikacji z wykorzystaniem języka Java ME ćwiczenia 1

Języki i techniki programowania Ćwiczenia 3 Dziedziczenie

Programowanie Multimediów. Programowanie Multimediów JAVA. programowanie GUI. (AWT i Swing) [1]

Wykład 4_1. Interaktywne aplety obsługa zdarzeń, uruchamianie apletu przez przeglądarkę lub maszynę wirtualną Javy.

Iteracyjno-rozwojowy cykl oprogramowania 4

Applety Java. Applety są przykładem kodu Java wykonywanego po stronie klienta, ale bez ujawnionej (jak w przypadku skryptu) wersji źródłowej

Programowanie w Javie

PWŚG Ćwiczenia 13. Ukończoną pracę należy przesłać na adres lub

Język Java część 2 (przykładowa aplikacja)

Technologie i usługi internetowe cz. 2

Programowanie obiektowe

Aplikacje w Javie wykład 12 Programowanie GUI

Budowa aplikacji z graficznym interfejsem użytkownika - GUI (Graphic User Interface)

Pierwsza ramka. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 10

PROJEKTOWANIE ABSTRAKCYJNEJ KLASY FIGURA PRZECHOWUJĄCEJ WSPÓLNE CECHY OBIEKTÓW GRAFICZNYCH

JAVA Materiały do laboratorium III wersja niezaawansowana Marcin Borkowski WSEiZ czerwiec 2006

Języki i metody programowania Java INF302W Wykład 2 (część 1)

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44

1 Atrybuty i metody klasowe

Tworzenie projektu zawierającego aplet w środowisku NetBeans. lab1. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych

Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1).

Projektowanie aplikacji internetowych laboratorium

Programowanie obiektowe

Zaawansowane aplikacje WWW - laboratorium

1. Czynności przygotowujące aplikację działającą na platformie Java SE Biblioteka5 (należy ją pobrać z załącznika z p.1)

Wzorce Strukturalne. Adapter: opis. Tomasz Borzyszkowski

Kurs programowania 2 - listy

Java. Wykład. Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Języki i metody programowania Java. Wykład 2 (część 2)

Aplikacje RMI Lab4

Java Foundation Clases. Tworzenie graficznych interfejsów użytkownika (GUI) w Javie

Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r.

Język JAVA podstawy. Wykład 5, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Projektowanie obiektowe. Roman Simiński Wzorce projektowe Wybrane wzorce strukturalne

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Języki i metody programowania Java Lab2 podejście obiektowe

Zaawansowane aplikacje internetowe

Transkrypt:

Programowanie zdarzeniowe I. Podstawy obsługi zdarzeń Małgorzata Prolejko ZDA JA16Z03

Plan Pojęcie zdarzenia Klasy i obiekty słuchaczy Rejestracja słuchaczy Obsługa naciśnięcia przycisku Rozpoznawanie obiektu zdarzenia Zastosowanie klas anonimowych do implementacji słuchacza zdarzeń Zdarzenia semantyczne

Pojęcie zdarzenia Zdarzenie jest obiektem pochodnym klasy java.util.eventobject. Utworzenie/wywołanie/wyzwolenie (trigger) zdarzenia przez pewien obiekt źródła może być zauważone przez inny obiekt (słuchacza). Słuchacz musi być poinformowany jakiego zdarzenia i od jakiego obiektu oczekiwać oraz co zrobić gdy ono już nastąpi. Zdarzenie Action / Event Źródło / wyzwalacz Action Trigger Słuchacz Action Listener

Pojęcie zdarzenia Zdarzenia najczęściej występują w kontekście obsługi interfejsu graficznego użytkownika (GUI) przy pomocy myszy bądź klawiatury. Wyzwalaczem są wtedy obiekty interfejsu użytkownika, zdarzenia są z góry zdefiniowane w bibliotekach java.awt.* i javax.swing.* a słuchaczami są obiekty implementujące interfejsy nasłuchu. Zdarzenie Action / Event Źródło / wyzwalacz Action Trigger Słuchacz Action Listener

Klasy i obiekty słuchaczy Aby zdarzenia mogły zostać obsłużone, źródło zdarzenia musi zarejestrować obiekt będący słuchaczem. Słuchacz musi implementować interfejs nasłuchu odpowiedniego zdarzenia. W przypadku obsługi GUI, istnieje lista predefiniowanych zdarzeń i odpowiadających im interfejsów nasłuchu. Każdy z interfejsów posiada zestaw metod pozwalających na zareagowanie na zdarzenie. Zdarzenie Interfejs Metody ActionEvent ActionListener actionperformed KeyEvent KeyListener keypressed, keyreleased, keytyped FocusEvent FocusListener focusgained, focuslost ItemEvent ItemListener itemstatechanged

Klasy i obiekty słuchaczy Tworzymy obiekt słuchacza implementujący interfejs ActionListener metodę actionperformed. Klasa słuchacza class Sluchacz implements ActionListener { public void actionperformed(actionevent e) { System.out.println("Klik!"); Interfejs słuchacza zdarzeń typu Action Jedyna metoda interfejsu Zdarzenie przekazywane do ciała metody

Rejestracja słuchaczy Aby słuchacz mógł zareagować na zdarzenie należy do zarejestrować w pewnym obiekcie źródła. Aby obiekt mógł zostać źródłem zdarzenia musi generować zdarzenia oraz posiadać metodę rejestracji słuchacza. W pakiecie awt jest to zwykle metoda addnnnlistener gdzie NNN odpowiada za zanwę zdarzenia (Key, Mouse, Action, ) JButton b = new JButton("Przycisk"); Sluchacz s = new Sluchacz(); b.addactionlistener(s); Źródło Słuchacz Rejestracja słuchacza w źródle

Obsługa naciśnięcia przycisku Klasę przycisku można znaleźć zarówno w pakiecie awt jak i Swing. java.awt.button javax.swing.jbutton Aby wyświetlić przycisk trzeba stworzyć kontener (okno) w którym przycisk będzie się znajdował. class Test extends Frame { class Test extends JFrame { Tworzymy przycisk i dodajemy do okna. Button b = new Button( A"); add(b); JButton b = new JButton( B"); getcontentpane().add(b);

Obsługa naciśnięcia przycisku Tworzymy obiekt słuchacza i rejestrujemy go w przycisku Sluchacz s = new Sluchacz(); b.addactionlistener(s); Okno wyświetlamy po uprzednim dopasowaniu rozmiarów okna do rozmiarów komponentów w nim umieszczonych za pomocą metody pack(). pack(); setvisible(true);

Obsługa naciśnięcia przycisku - awt obsługa słuchacza class Test extends Frame { public static void main(string[] a){ new Test(); Test() { Button b = new Button("Przycisk"); add(b); Sluchacz s = new Sluchacz(); b.addactionlistener(s); pack(); setvisible(true); Klasa główna rozszerzająca Jframe okno z pakietu Swing Metoda main tylko konstruuje okno Konstruktor okna: tworzy i dodaje przycisk class Sluchacz implements ActionListener{ public void actionperformed(actionevent e) { System.out.println("Klik!"); Package test1

Obsługa naciśnięcia przycisku - Swing obsługa słuchacza class Test extends JFrame { public static void main(string[] a){ new Test(); Test() { JButton b = new JButton("Przycisk"); getcontentpane().add(b); Sluchacz s = new Sluchacz(); b.addactionlistener(s); pack(); setvisible(true); Klasa główna rozszerzająca Jframe okno z pakietu Swing Metoda main tylko konstruuje okno Konstruktor okna: tworzy i dodaje przycisk class Sluchacz implements ActionListener{ public void actionperformed(actionevent e) { System.out.println("Klik!"); Package test2

Obsługa naciśnięcia przycisku Ćwiczenie 1. Napisz program, który zliczy naciśnięcia przycisku.

Rozpoznanie obiektu zdarzenia Podczas obsługi zdarzenia można sprawdzać jaki obiekt je wywołał dzięki informacjom zawartym w obiekcie Event. class Sluchacz implements ActionListener{ public void actionperformed(actionevent e) { Object o = e.getsource(); System.out.println(e.paramString()); System.out.println(e.getActionCommand()); System.out.println( o.getclass() +"\n"+ o.tostring()); Informacje o obiekcie zdarzenia Napis na przycisku (polecenie wywołania) Pobranie obiektu wywołującego zdarzenie Informacje o zdarzeniu w postaci łańsucha znaków (zwykle do debugowania) Package test3

Zastosowanie klas anonimowych Jeżeli słuchacz jest rejestrowany tylko w jednym źródle, można zrezygnować z deklarowania osobnej klasy i zastosować klasę anonimową. Sluchacz s = new Sluchacz(); b.addactionlistener(s); class Sluchacz implements ActionListener{ public void actionperformed(actionevent e) { System.out.println("Klik!"); b.addactionlistener( new ActionListener(){ public void actionperformed(actionevent e) { System.out.println("Klik!"); ); Package test4

Rozpoznanie obiektu zdarzenia Napisz program, który będzie wyświetlał 3 przyciski. Po kliknięciu jednego przycisku należy go dezaktywować metodą setenabled( ) z klasy AbstractButton uaktywniając pozostałe. Ćwiczenie 2.

Zdarzenia semantyczne Zdarzenia można podzielić na dwa rodzaje: - niskiego poziomu wciśnięcie przycisku myszy, klawisza klawiatury, ruch myszy, ruch kółka, itd. oraz - wysokiego poziomu wciśnięcie przycisku GUI, zaznaczenie chceckboxa, przesunięcie suwaka, itd Zdarzenia wysokiego poziomu nazywane są semantycznymi ponieważ działania użytkownika odczytywane są w kontekście wyświetlanego na ekranie GUI.

Zdarzenia semantyczne Lista zdarzeń semantycznych pakietu awt Zdarzenie ActionEvent ItemEvent AdjustmentEvent opis pewna akcja wykonywana przez komponent zmiana wybranego elementu z komponentu wieloelementowego Wybrane zdarzenia semantyczne pakietu Swing Zdarzenie MenuEvent MenuKeyEvent TreeExpansionEvent TreeSelectionEvent ListSelectionEvent opis Zdarzenia wyboru menu Menu zostało aktywowane za pomocą klawiatury Drzewo zostało rozwinięte/zwinięte Zmienił się wybrany element drzewa. Zmiana na liście rozwijanej