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 nicht mouseExited(java.awt.event.MouseEvent) in java.awt.event.MouseListener

Was bedeutet das?

PS (das JPanel/tab -Bit, in dem ich es möchte, heißt: DisplayMainpanel)
Danke vielmals.

War es hilfreich?

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();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top