Eventi del Mouse
Differenza tra ActionListener e MouseListener:
-
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.
-
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);
42 frame.setVisible(true);
43 }
44 } |
|