Eventi del Mouse

 

Differenza tra ActionListener e MouseListener:

  1. ActionListener:

    • Risponde solo all’evento di clic (o azione) su un componente, come un pulsante.
    • Viene utilizzato principalmente per gestire l’azione di pressione del pulsante.
    • Ad esempio, quando premi un pulsante, l’ActionListener viene attivato e può eseguire un’azione specifica.
  2. MouseListener:

    • Risponde a vari eventi del mouse, inclusi clic, movimenti, entrata e uscita dall’area di un componente.
    • Viene utilizzato per gestire eventi più specifici legati al mouse.
    • Esempi di eventi gestiti da MouseListener:
      • mouseClicked: Quando viene effettuato un clic del mouse.
      • mouseEntered: Quando il mouse entra nell’area del componente.
      • mouseExited: Quando il mouse esce dall’area del componente.
      • mousePressed: Quando il pulsante del mouse viene premuto.
      • mouseReleased: Quando il pulsante del mouse viene rilasciato.

In breve, se hai bisogno di rispondere solo a un clic su un pulsante, ActionListener è la scelta appropriata. Se devi gestire eventi più specifici legati al mouse, come entrata o uscita dall’area di un componente, allora MouseListener è più adatto.

 

  • ActionListener: è il tipo di listener
  • actionPerformed: è il suo metodo da sovrascrivere
  • ActionEvent: è l'evento

  • Mentre:

  • MouseListener: è il tipo di listener
  • I metodi da sovrascrivere:
    • mouseClicked, mouseEntered, mouseExited, mousePressed, mouseReleased
  • MouseEvent: è l'evento
  • MouseAdapter: è sempre il tipo di listener che si utilizza quando si usano solo alcuni dei metodi e non tutti
    i realtà anche mouseListener fa la stessa cosa

 

Esempio di mouseEntered e mouseExited su bottone:

 

Classe: EnterMouse

 1 package entermouse;
 2 
 3 import javax.swing.*;
 4 import java.awt.*;
 5 import java.awt.event.*;
 6 
 7 public class EnterMouse {
 8     public static void main(String[] args) {
 9         SwingUtilities.invokeLater(new Runnable() {
10             public void run() {
11                 createAndShowGUI();
12             }
13         });
14     }
15 
16     private static void createAndShowGUI() {
17         JFrame frame = new JFrame("Button Color Change");
18         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
19         frame.setSize(300, 200);
20 
21         JButton button = new JButton("Cambia colore");
22         button.setPreferredSize(new Dimension(150, 50));
23 
24         button.addMouseListener(new MouseAdapter() {
25             @Override
26             public void mouseEntered(MouseEvent e) {
27                 button.setBackground(Color.GREEN);
28             }
29             public void mouseExited(MouseEvent e) {
30                 button.setBackground(Color.RED);
31             }
32         });
33 
34         JPanel panel = new JPanel(new GridBagLayout());
35         GridBagConstraints gbc = new GridBagConstraints();
36         gbc.gridx = 0;
37         gbc.gridy = 0;
38         panel.add(button, gbc);
39 
40         frame.add(panel);
41         frame.setLocationRelativeTo(null); // Centra la finestra nello schermo
42         frame.setVisible(true);
43     }
44 }