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 abstracto mouseExited(java.awt.event.MouseEvent) en java.awt.event.MouseListener

¿Qué significa eso?

PD (el bit jpanel/tab en el que lo quiero se llama: displaymainpanel)
Muchas gracias.

¿Fue útil?

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();
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top