Question

Je veux un MouseListener pour un JPanel dans un JTabbedPane dans un JFrame ...
Je veux imprimer quelque chose, chaque fois que la souris est cliqué / enfoncée.
Je l'ai essayé de regarder autour, mais quand je tente de le mettre en œuvre une erreur je suis arrivé sur cette ligne:

public class GUI implements ActionListener, MouseListener

Et voici l'erreur:

  

GUI n'est pas abstraite et ne   remplacer mouseExited(java.awt.event.MouseEvent) méthode abstraite dans java.awt.event.MouseListener

Qu'est-ce que ça veut dire?

P.S (le JPanel / onglet bit que je veux en est appelé: displayMainPanel)
Merci beaucoup.

Était-ce utile?

La solution

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

Autres conseils

Eh bien, vous devez override mouseExit:

Dans votre classe GUI:

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

Lorsque toutes les erreurs ont disparu. Ne pas oublier de yourPanel.addMouseListener(theMouseListener):

yourPanel.addMouseListener(theObjectOfTheClassWhichImplementsTheListener);

Et puis réglez la mise au point d'un panneau, pour être sûr que les événements seront pris.

yourPanel.requestFocus();
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top