Mausereignis E (jpanel) Java -Hilfe
-
26-09-2019 - |
Frage
Ich möchte einen Mouselistener für ein Jpanel in einem jtabbedpane in einem jframe ...
Ich möchte, dass es etwas druckt, wenn die Maus geklickt/gedrückt wird.
Ich habe versucht, mich umzuschauen, aber wenn ich versuche, es zu implementieren, habe ich einen Fehler in dieser Zeile:
public class GUI implements ActionListener, MouseListener
Und das ist der Fehler:
GUI
ist nicht abstrakt und überschreibt die abstrakte Methode nichtmouseExited(java.awt.event.MouseEvent)
injava.awt.event.MouseListener
Was bedeutet das?
PS (das JPanel/tab -Bit, in dem ich es möchte, heißt: DisplayMainpanel)
Danke vielmals.
Lösung
JPanel jPanel = new JPanel();
jPanel.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
System.out.println("mouseClicked");
}
public void mouseEntered(java.awt.event.MouseEvent evt) {
System.out.println("mouseEntered");
}
public void mouseExited(java.awt.event.MouseEvent evt) {
System.out.println("mouseExited");
}
public void mousePressed(java.awt.event.MouseEvent evt) {
System.out.println("mousePressed");
}
public void mouseReleased(java.awt.event.MouseEvent evt) {
System.out.println("mouseReleased");
}
});
Andere Tipps
Nun, Sie müssen außer Kraft setzen mouseExit
:
In deiner GUI
Klasse:
@Override
public void mouseExit(MouseEvent e) { /* Do nothing */ }
Wenn alle Fehler weg sind. Vergiss es nicht yourPanel.addMouseListener(theMouseListener)
:
yourPanel.addMouseListener(theObjectOfTheClassWhichImplementsTheListener);
Und stellen Sie dann den Fokus auf das Panel, um sicherzustellen, dass Ereignisse gefangen werden.
yourPanel.requestFocus();