1 Programowanie obiektoweAndrzej Ziółkowski Wykład 4
2 Jednoczesne wykonywanie wielu programów na komputerze jednoprocesorowym
3 Program sterowany zdarzeniami
4 Przykład 1 – program rysujący (obsługa zdarzeń związanych z myszką)Przykład1 – klasa wywiedziona z JFrame pix – tablica o wymiarach ramki do zapamiętania pomalowanych pikseli start – metoda tworząca okno (frame – ramkę) oraz rejestrująca metody obsługi zdarzeń mMove – metoda obsługująca zmianę położenia kursora myszki mClick - metoda obsługująca kliknięcie myszki paint – nadpisana metoda klasy javax.swing.JFrame odpowiedzialna za „pomalowanie” okna main – metoda uruchamiająca program
5 Przykład 1 a
6 Przykład 1 b
7 Przykład 1 c
8 Zdarzenia standardoweaction – zajście akcji charakterystycznej dla obiektu item – wybranie opcji adjustment – zmiana belki na pasku przewijaka text – zmiana tekstu w polu tekstowym window – otwieranie, zamykanie, aktywacja,… okna component – ukrycie, pokazanie, zmiana rozmiaru mouse – kliknięcie, najechanie,… myszką mouseMotion – ruch myszki key – wciśnięcie klawisza z klawiatury focus – zmiana aktywnego okna container – dodawanie i usuwanie komponentów
9 Zdarzenia mouse Występuje w obiektach klas: Canvas, Dialog, Frame, Panel, Window, Button Obiekt nasłuchujący: MouseListener Metody obiektu nasłuchującego: void mousePressed( MouseEvent e); void mouseReleased( MouseEvent e); void mouseClicked( MouseEvent e); void mouseEntered( MouseEvent e); void mouseExited( MouseEvent e);
10 Zdarzenia mouse – metody MouseEventgetButton – określa, który przycisk myszki został użyty getSource – określa obiekt, w którym zaszło zdarzenie getClickCount – ilość kliknięć następujących szybko po sobie getPoint, getX, getY – określenie położenia kursora myszy w momencie kliknięcia getWhen – czas zdarzenia isAltDown, isCtrlDown, isShiftDown – czy w chwili zdarzenia był wciśnięty odpowiedni klawisz klawiatury
11 Zdarzenia mouseMotionWystępuje w obiektach klas: Canvas, Dialog, Frame, Panel, Window Obiekt nasłuchujący: MouseMotionListener Metody obiektu nasłuchującego: void mouseDragged( MouseEvent e); void mouseMoved( MouseEvent e); MouseEvent – taki sam obiekt jak dla zdarzeń mouse
12 Zdarzenia key Występuje we wszystkich graficznych obiektachObiekt nasłuchujący: keyListener Metody obiektu nasłuchującego: void keyPressed( KeyEvent e); void keyReleased( KeyEvent e); void keyTyped( KeyEvent e); Podczas pisanie na klawiaturze, po naciśnięciu klawisza generowane jest zdarzenie: keyPressed, a po zwolnieniu: keyReleased i keyTyped.
13 Zdarzenia key – metody keyEventgetKeyCode – zwraca wirtualny kod klawisza: V_0, …V_9 – kody cyfr V_A,…V_Z – kody liter V_F1,…V_F12 – kody klawiszy funkcyjnych V_ALT, V_ENTER, V_ESCAPE,… - kody klawiszy specjalnych … getKeyChar – zwraca kod znaku w standardzie unicode isAltDown, isCtrDown, isShiftDown,… - czy w chwili zdarzenia był wciśnięty odpowiedni klawisz klawiatury
14 Pakiet java.awt.event Zawiera interfejsy i klasy związane z obsługą zdarzeń Podstawowe typy klas: xxxEvent – obiekt przekazywany do metody obsługującej zdarzenie, zawiera informacje o zdarzeniu np. współrzędne kursora myszki xxxListener – wzorzec obiektu nasłuchującego, może mieć dużo metod i wszystkie muszą być implementowane xxxAdapter – implementuje wszystkie metody odpowiadającego Listener’a, można implementować dowolną liczbę metod.