Mouse evento e di aiuto (JPanel) Java
-
26-09-2019 - |
Domanda
Voglio un MouseListener per un JPanel all'interno di un JTabbedPane in un JFrame ...
Voglio che stampare qualcosa, ogni volta che il mouse viene premuto / premuto.
Ho provato a cercare in giro, ma quando provo e implementare lo ho ottenuto un errore su questa linea:
public class GUI implements ActionListener, MouseListener
E questo è l'errore:
GUI
non è astratta e non lo fa sovrascrivere metodo astrattomouseExited(java.awt.event.MouseEvent)
injava.awt.event.MouseListener
Che cosa vuol dire?
P.S (il JPanel / scheda morse lo voglio in si chiama: displayMainPanel)
Grazie mille.
Soluzione
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");
}
});
Altri suggerimenti
Bene, è necessario ridefinire mouseExit
:
Nella classe GUI
:
@Override
public void mouseExit(MouseEvent e) { /* Do nothing */ }
Quando tutti gli errori sono andati. Non dimenticare di yourPanel.addMouseListener(theMouseListener)
:
yourPanel.addMouseListener(theObjectOfTheClassWhichImplementsTheListener);
e quindi impostare la messa a fuoco di un pannello, per essere sicuri che gli eventi saranno catturati.
yourPanel.requestFocus();