w9.pdf

(184 KB) Pobierz
Microsoft PowerPoint - w9.ppt
Wykład 9
Graficzny interfejs użytkownika IV
Obsługa myszki
Wykorzystanie panelu do rysowania
645495554.002.png
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 .
645495554.003.png
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).
645495554.004.png
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 .
645495554.005.png
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);
}
645495554.001.png
Zgłoś jeśli naruszono regulamin