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

Che cosa vuol dire?

P.S (il JPanel / scheda morse lo voglio in si chiama: displayMainPanel)
Grazie mille.

È stato utile?

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();
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top