Programowanie obiektowe Andrzej Ziółkowski Wykład 4
Jednoczesne wykonywanie wielu programów na komputerze jednoprocesorowym
Program sterowany zdarzeniami
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
Przykład 1 a
Przykład 1 b
Przykład 1 c
Zdarzenia standardowe action – 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
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);
Zdarzenia mouse – metody MouseEvent getButton – 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
Zdarzenia mouseMotion Wystę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
Zdarzenia key Występuje we wszystkich graficznych obiektach Obiekt 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.
Zdarzenia key – metody keyEvent getKeyCode – 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
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.