Die Quelle des Ereignisses eines Mausereignisses ist häufig mit einem Container verbunden. Die Java -Sprache bietet zwei Schnittstellen für den Umgang mit Mausereignissen: Mouselistener und MousemotionListener -Schnittstelle.
Mouselisten -Schnittstelle
Die Mouselisten -Schnittstelle kann 5 Arten von Mausereignissen verarbeiten: Drücken Sie die Maus, lassen Sie die Maus frei, klicken Sie auf die Maus, geben Sie die Maus ein und beenden Sie die Maus. Die entsprechenden Methoden sind:
(1) getX (): Die X -Koordinate der Maus
(2) Gety (): Die Y -Koordinate der Maus
(3) getModifiers (): Holen Sie sich den linken oder rechten Taste der Maus.
(4) getClickCount (): Die Häufigkeit, mit der die Maus geklickt wird.
(5) Getource (): Holen Sie sich die Quelle des Ereignisses, in dem die Maus aufgetreten ist.
(6) Addmouselistener: Fügen Sie den Monitor hinzu.
(7) RemoveMoSelistener: Entfernen Sie den Monitor.
Die Methoden zur Implementierung der Mouselistener -Schnittstelle sind:
(1) mousepression (mouseEvent e);
(2) Mousereleased (MouseEvent E);
(3) mausented (Mouseevent e);
(4) mouseexited (MouseEvent e);
(5) Mouseclicked (MouseEvent E);
[Beispiel] Das Applet richtet einen Textbereich ein, um eine Reihe von Mausereignissen aufzuzeichnen. Wenn die Maus in das Applet -Fenster eingeht, zeigt der Textbereich "Maus ein", wenn die Maus das Fenster verlässt, der Textbereich zeigt "Mausverkehr". Wenn die Maus gedrückt wird, werden beim Doppelklick der Textbereich "Doppelklicken Sie auf die Maus" und die Koordinaten der Maus angezeigt. Das Programm zeigt auch einen roten Kreis an, und wenn die Maus geklickt wird, wird der Radius des Kreises weiter größer.
Java.applet importieren. G.ClearRect (0,0, this.getWidth (), this.getheight ()); TS Mouselistener {JTextArea -Text; Öffnen Sie "," Doppelklicken Sie auf die Maus "}; MyWindow (String S) {Super (s); Container con = this.getContentPane (); con.setLayout (neuer GridLayout (2,1)); 200.300). addmo uselistener (this); Mousestates [Mouseflg]+"ist:"+x+"," y+"/n"); = E.Gety (); voi d mauseinent (MouseEvent e) {x = e.getX (); = E.Gety (); );
Mausereignisse können in jeder Komponente auftreten: Mauseintrag, Mausausgang, Mausdruck usw. Fügen Sie beispielsweise dem obigen Programm eine Schaltfläche hinzu und fügen Sie dem Schaltflächenobjekt einen Mausmonitor hinzu, ändern Sie die Init () -Methode im obigen Programm in das folgende Formular, dh alle Mausereignisse auf der Taste.
Jbutton Button; public void init () {button = new Jbutton ("Mausereignisse können auch auf der Schaltfläche stattfinden"); Taste.
Wenn das Programm weiter wissen möchte, dass die linke oder rechte Maustaste gedrückt oder geklickt wird, kann die linke oder rechte Maustaste der Maus durch die Konstanten -Taste 1_mask und Taste3_Mask in der inputEvent -Klasse bestimmt werden. Beispielsweise bestimmt der folgende Ausdruck, ob die rechte Maustaste gedrückt oder mit der rechten Maustaste geklickt wurde:
E.GetModifiers () == InputEvent
MousemotionListener -Schnittstelle
Die Schnittstelle zur MousemotionListener -Schnittstelle übernimmt zwei Ereignisse: Ziehen der Maus und Bewegen der Maus.
Der Weg zur Registrierung eines Monitors ist:
AddMousemotionListener (Monitor)
Es gibt zwei Schnittstellenmethoden zu implementieren:
(1) Mouedragged (MouseEvent E)
(2) Mousemoved (MouseeEvent E)
[Beispiel] Eine Anwendung, die in Bildlaufleisten synchron mit dem Anzeigefenster ändert. Im Fenster befindet sich ein Quadrat. Bar. Im Gegenteil, wenn der Schieberegler der Bildlaufleiste verschoben wird, ändert sich auch die Anzeigeposition des Quadrats im Fenster.
javax.swing importieren.*; import Java.awt. con .SetLayout (neuer BorderLayout ()); ); BorderLayout. Neue Dimension (500.300); int) ((float) x/(float) getSize (). Breite)*100.0); *100.0); ); .FillRect (0,0, Größe, Größe.Height); Maus eexited (Mouseevent e) {} public void mouseclicked (MouseEvent e) {} public void Mouserelease (MouseEvent e) {} public void mousemoved (Mousevent e) {} Public void mo benutzte gepresst ) y = e.gety (); y); .width); Beispiel6_9 {public static void main () {MyWindow MyWindow = New MyWindow ("Scrollbar Schematische Programm");
Wenn Sie im obigen Beispiel nur die Anzeigeposition des Inhalts ändern müssen, indem Sie den Schieberegler schieben, können Sie einfach das Scroll -Panel JSCROLLPANE verwenden. In diesem Fall kann die Erstellung und Kontrolle von Scrollbars vermieden werden und werden direkt von JScrollpane intern implementiert. Siehe die folgende geänderte Definition von MyWindow:
Klasse MyWindow erweitert JFrame {public myWindow (String) {Super (s); ; () {neue Dimension zurückgeben (400.400);
Die Form der Mauszeiger kann auch vom Programm gesteuert werden, und die SetCursor () -Methode kann die Form der Mauszeiger festlegen. Zum Beispiel der Code -SetCursor (Cursor.getPredefinedCursor (Cursor.wait_cursor)).