événement souris e (JPanel) Java aide
-
26-09-2019 - |
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 remplacermouseExited(java.awt.event.MouseEvent)
méthode abstraite dansjava.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.
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();