Pergunta

Eu quero um mouselistener para um jpanel dentro de um jtabbedpane em um jframe ...
Quero imprimir algo, sempre que o mouse for clicado/pressionado.
Tentei olhar em volta, mas quando tento implementá -lo, recebi um erro nesta linha:

public class GUI implements ActionListener, MouseListener

E este é o erro:

GUI não é abstrato e não substitui o método abstrato mouseExited(java.awt.event.MouseEvent) dentro java.awt.event.MouseListener

O que isso significa?

PS (o bit jpanel/guia que eu quero é chamado: DisplayMainPanel)
Muito obrigado.

Foi útil?

Solução

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

Outras dicas

Bem, você tem que substituir mouseExit:

Na tua GUI classe:

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

Quando todos os erros se foram. Não se esqueça de yourPanel.addMouseListener(theMouseListener):

yourPanel.addMouseListener(theObjectOfTheClassWhichImplementsTheListener);

E, em seguida, defina o foco e o painel, para garantir que os eventos sejam capturados.

yourPanel.requestFocus();
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top