Erstellen Sie einen Maus-Listener in Java
In Java wird die Klasse MouseListener
benachrichtigt, wenn sich die Maus in einem bestimmten Bereich bewegt. Dieses Tutorial zeigt, wie man eine MouseListener
-Schnittstelle erstellt.
Erstellen Sie einen Maus-Listener in Java
MouseListener
wird benachrichtigt, wenn es eine Zustandsänderung gibt. Diese Änderung kann das Klicken, Drücken und Loslassen der Maus oder das Betreten und Verlassen eines bestimmten Fensterbereichs sein.
Der MouseListener
ist ein Teil des Java.awt.event
-Pakets.
Der Schritt-für-Schritt-Mechanismus von Java MouseListener
ist unten angegeben:
- Wenn wir klicken oder die Maus bewegen, hilft ein Objekt im Programm bei der Implementierung der Schnittstelle.
- Dieses Objekt ist bereits beim Listener registriert. Deshalb wird ein Ereignis durch Drücken, Klicken oder Bewegen der Maus generiert.
- Wenn das Ereignis generiert wird, hilft es beim Aufruf einer der Methoden.
- Nach diesem Aufruf wird der Methode das Event
Mouse
übergeben.
Der MouseListener
hat mehrere Methoden, die bei verschiedenen Ereignissen aufgerufen werden. Diese Verfahren sind in der Tabelle angegeben.
S.Nr | Methode | Beschreibung |
---|---|---|
1 | void mouseClicked(MouseEvent e) |
Diese Methode wird beim Klicken mit der Maus aufgerufen – Drücken und Loslassen. |
2 | void mouseEntered(MouseEvent e) |
Diese Methode wird aufgerufen, wenn die Maus bewegt wird und in eine Komponente eintritt. |
3 | void mouseExited(MouseEvent e) |
Diese Methode wird aufgerufen, wenn die Maus bewegt wird und eine Komponente verlässt. |
4 | void mousePressed(MouseEvent e) |
Diese Methode wird aufgerufen, wenn die Maustaste nur auf einer Komponente gedrückt wird. |
5 | void mouseReleased(MouseEvent e) |
Diese Methode wird aufgerufen, wenn die Maustaste von einer Komponente losgelassen wird. |
Lassen Sie uns nun ein Beispiel ausprobieren, das alle in der Tabelle beschriebenen Methoden aufruft.
Beispiel:
package delftstack;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Label;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
// The main class implements the MouseListener interface
public class Mouse_Listener implements MouseListener {
// create two labels one frame and one string
Label label1, label2;
Frame Demo_Frame;
String event_invo;
// Constructor
Mouse_Listener() {
Demo_Frame = new Frame("The Mouse Listener");
label1 = new Label("This is demo for the mouse listener events\n", Label.CENTER);
label2 = new Label();
// set the frame layout as flowlayout
Demo_Frame.setLayout(new FlowLayout());
// add labels to the frame
Demo_Frame.add(label1);
Demo_Frame.add(label2);
// Register the created class Mouse_Listener to catch as well as respond to the mouse events,
Demo_Frame.addMouseListener(this);
// set the size of frame 450x300
Demo_Frame.setSize(450, 300);
// visibility of the frame will be true
Demo_Frame.setVisible(true);
}
// mouseClicked method
public void mouseClicked(MouseEvent ev) {
event_invo += " The mouse button was clicked";
// set the text of label 2 as even_invo
label2.setText(event_invo);
// visibility will be true
Demo_Frame.setVisible(true);
}
// mouseEntered method
public void mouseEntered(MouseEvent ev) {
// when mouse enters the window
label2.setText("The mouse has entered the window");
// visibility will be true
Demo_Frame.setVisible(true);
}
// mouseExited method
public void mouseExited(MouseEvent ev) {
// when the mouse leaves the window
label2.setText("Mouse has left the window");
// visibility as true
Demo_Frame.setVisible(true);
}
// mousePressed method
public void mousePressed(MouseEvent ev) {
// when the mouse is pressed
label2.setText("Mouse button is pressed");
// set the visibility as true
Demo_Frame.setVisible(true);
}
// mouseReleased method
public void mouseReleased(MouseEvent ev) {
// set the string event_invo
event_invo = "The mouse button is released ";
label2.setText(event_invo);
// visibility as true
Demo_Frame.setVisible(true);
}
// main method
public static void main(String args[]) {
new Mouse_Listener();
}
}
Ausgang:
Der obige Code implementiert alle oben beschriebenen Methoden, was bedeutet, dass das Fenster weiß, wann die Maus eintritt, existiert, drückt, loslässt oder klickt.
MouseListener
wird normalerweise mit Java Swing verwendet, um eine Schnittstelle zu erstellen.
Zum Beispiel müssen wir die X
- und Y
-Punkte der Klickposition erhalten. Wir können dies tun, indem wir MouseListener
und Swing
kombinieren.
Lassen Sie uns dieses Beispiel implementieren.
package delftstack;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Mouse_Listener {
private JFrame Demo_Frame;
private JLabel Label_One;
private JLabel Label_Two;
private JPanel Control_Panel;
public Mouse_Listener() {
Create_GUI();
}
public static void main(String[] args) {
Mouse_Listener MouseListenerDemo = new Mouse_Listener();
MouseListenerDemo.Show_Mouse_Listener();
}
private void Create_GUI() {
Demo_Frame = new JFrame("Java SWING With MouseListener");
Demo_Frame.setSize(400, 400);
Demo_Frame.setLayout(new GridLayout(3, 3));
Label_One = new JLabel("", JLabel.CENTER);
Label_Two = new JLabel("", JLabel.CENTER);
Label_Two.setSize(350, 350);
Demo_Frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent windowEvent) {
System.exit(0);
}
});
Control_Panel = new JPanel();
Control_Panel.setLayout(new FlowLayout());
Demo_Frame.add(Label_One);
Demo_Frame.add(Control_Panel);
Demo_Frame.add(Label_Two);
Demo_Frame.setVisible(true);
}
private void Show_Mouse_Listener() {
Label_One.setText("X Y Points for MouseListener");
JPanel Demo_Panel = new JPanel();
Demo_Panel.setBackground(Color.green);
Demo_Panel.setLayout(new FlowLayout());
Demo_Panel.addMouseListener(new CustomMouseListener());
JLabel Msg_Label = new JLabel("Welcome to Delftstack.com", JLabel.CENTER);
Demo_Panel.add(Msg_Label);
Msg_Label.addMouseListener(new CustomMouseListener());
Demo_Panel.add(Msg_Label);
Control_Panel.add(Demo_Panel);
Demo_Frame.setVisible(true);
}
class CustomMouseListener implements MouseListener {
public void mouseClicked(MouseEvent e) {
Label_Two.setText("Mouse Clicked: (" + e.getX() + ", " + e.getY() + ")");
}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
}
}
Ausgang:
Der obige Code erhält die x
- und y
-Punkte für die Klickposition in einem bestimmten Bereich. Der Code verwendet Java Swing
und MouseListener
.
Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.
LinkedIn Facebook