2010-11-20 12 views
1

Ich möchte einen MouseListener für ein JPanel in einem JTabbedPane in einem JFrame ...
Ich möchte es etwas drucken, wenn die Maus geklickt/gedrückt wird.
Ich habe versucht, schaut sich um, aber wenn ich versuche, und implementieren es bekam ich einen Fehler auf dieser Linie:Mausereignis e (Jpanel) Java Hilfe

public class GUI implements ActionListener, MouseListener 

Und das ist der Fehler:

GUI is not abstract and does not override abstract method mouseExited(java.awt.event.MouseEvent) in java.awt.event.MouseListener

Was bedeutet das?

P.S (das JPanel/Tab-Bit, ich will es heißt: displayMainPanel)
Vielen Dank.

Antwort

2
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"); 
       } 
      }); 
+0

Scheint Dank zu arbeiten. –

2

Na, haben Sie mouseExit außer Kraft zu setzen:

In Ihrem GUI Klasse:

@Override 
public void mouseExit(MouseEvent e) { /* Do nothing */ } 

Wenn alle Fehler sind verschwunden. Vergessen Sie nicht, yourPanel.addMouseListener(theMouseListener):

yourPanel.addMouseListener(theObjectOfTheClassWhichImplementsTheListener); 

und legen Sie den Fokus ein die Platte, um sicherzustellen, dass Ereignisse werden gefangen werden.

yourPanel.requestFocus();