Evento del ratón E (JPanel) Ayuda de Java
-
26-09-2019 - |
Pregunta
Quiero un MouseListener para un jpanel dentro de un jtabbedpane en un jframe ...
Quiero que imprima algo, cada vez que se haga clic/presione el mouse.
He intentado mirar a su alrededor, pero cuando intento implementarlo recibí un error en esta línea:
public class GUI implements ActionListener, MouseListener
Y este es el error:
GUI
no es abstracto y no anula el método abstractomouseExited(java.awt.event.MouseEvent)
enjava.awt.event.MouseListener
¿Qué significa eso?
PD (el bit jpanel/tab en el que lo quiero se llama: displaymainpanel)
Muchas gracias.
Solución
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");
}
});
Otros consejos
Bueno, tienes que anular mouseExit
:
En tus GUI
clase:
@Override
public void mouseExit(MouseEvent e) { /* Do nothing */ }
Cuando todos los errores se han ido. No olvides yourPanel.addMouseListener(theMouseListener)
:
yourPanel.addMouseListener(theObjectOfTheClassWhichImplementsTheListener);
Y luego establezca el enfoque en el panel, para asegurarse de que los eventos serán atrapados.
yourPanel.requestFocus();