140 likes | 287 Views
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
E N D
Programowanie obiektowe Andrzej Ziółkowski Wykład 4
Jednoczesne wykonywanie wielu programów na komputerze jednoprocesorowym
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
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 cyfrV_A,…V_Z – kody literV_F1,…V_F12 – kody klawiszy funkcyjnychV_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.