w9.pdf
(
184 KB
)
Pobierz
Microsoft PowerPoint - w9.ppt
Wykład 9
Graficzny interfejs użytkownika IV
Obsługa myszki
Wykorzystanie panelu do rysowania
Obsługa myszki (1)
Każdy komponent, dziedziczący z
java.awt.Component
może przechwytywać
zdarzenia, generowane przez myszkę. Zdarzenia te są reprezentowane przez obiekty klasy
java.awt. MouseEvent
. Słuchacze tych zdarzeń muszą implementować interfejsy
MouseListener
i/lub
MouseMotionListener
. Istnieją adaptery
MouseAdapter
oraz
MouseMotionAdapter
, implementujące te intefejsy. Do rejestrowania i
wyrejestrowania słuchaczy służą metody
addMouseListener()
,
removeMouseListener()
,
addMouseMotionListener()
,
removeMouseMotionListener()
.
public void mousePressed(MouseEvent e) // MouseListener
Wołana, kiedy klawisz myszy zostanie naciśnięty, a kursor znajduje się nad danym
komponentem.
public void mouseClicked(MouseEvent e) // MouseListener
Wołana, kiedy klawisz myszy zostanie naciśnięty i zwolniony na komponencie bez
przesunięcia kursora.
public void mouseReleased(MouseEvent e) // MouseListener
Wołana, kiedy klawisz myszy jest zwalniany. Ta metoda jest zawsze poprzedzona
wywołaniem metody
mousePressed
.
Obsługa myszki (2)
public void mouseEntered(MouseEvent e) // MouseListener
Wołana, kiedy kursor myszy wchodzi w granice komponentu.
public void mouseExited(MouseEvent e) // MouseListener
Wołana, kiedy kursor myszy opuszcza granice komponentu.
public void mouseDragged(MouseEvent e) // MouseMotionListener
Wołana, kiedy mysz jest przesuwana przy naciśniętym klawiszu (przeciąganie). Ta metoda jest
zawsze poprzedzona wywołaniem metody
mousePressed
.
public void mouseMoved(MouseEvent e) // MouseMotionListener
Wołana, kiedy mysz jest przesuwana, a kursor znajduje się nad danym komponentem.
Używając metod i stałych klasy
InputEvent
(nadklasy
MouseEvent
) można sprawdzić,
który klawisz myszy został naciśnięty.
public boolean isMetaDown()
Zwraca
true
, jeśli naciśnięto prawy klawisz myszy.
public boolean isAltDown()
Zwraca
true
, jeśli naciśnięto środkowy klawisz myszy (lub klawisz
Alt
+ lewy klawisz myszy).
Obsługa myszki (3)
Metody
mouseDragged
oraz
MouseReleased
są wywoływane na rzecz słuchaczy
komponentu, w którym operacja przeciągania się rozpoczęła.
Metoda
repaint
wywołuje metodę
update
, która w AWT czyści tło przez narysowanie
prostokąta o rozmiarze komponentu w bieżącym kolorze tła (co często powoduje migotanie), a
potem woła metodę
paint
. Metoda
paint
nie powinna być bezposrednio wywoływana przez
aplikację.W klasie
JFrame
metoda
update
została zastąpiona metodą, która po prostu
wywołuje metodę
paint
bez niepotrzebnego czyszczenia tła. Dzięki temu metoda
paint
w
naszym programie demonstracyjnym tylko dodaje nowy rysunek do okna bez usuwania starych
rysunków. Jeśli jednak zajdzie konieczność narysowania całego okna, np. po jego
zminimalizowaniu, to tło jest czyszczone i w oknie zostaje tylko rysunek utworzony przez
ostatnie wywołanie metody
paint
.
Obsługa myszki - przykład (1)
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MyszDemo extends JFrame
implements MouseListener, MouseMotionListener
{
private String s = "";
private int xPoz, yPoz;
boolean klik;
public MyszDemo()
{
super( "Zdarzenia generowane przez mysz" );
// Aplikacja sama obsługuje zdarzenia, generowane przez mysz
addMouseListener( this );
addMouseMotionListener( this );
setSize( 550, 350 );
setVisible(true);
}
Plik z chomika:
Iskraa
Inne pliki z tego folderu:
w9.pdf
(184 KB)
Inne foldery tego chomika:
w1
w10
w11-12
w2
w3
Zgłoś jeśli
naruszono regulamin