Java

Fermé
lolita-01 Messages postés 90 Date d'inscription mercredi 5 janvier 2011 Statut Membre Dernière intervention 26 juillet 2013 - 13 sept. 2012 à 00:03
lolita-01 Messages postés 90 Date d'inscription mercredi 5 janvier 2011 Statut Membre Dernière intervention 26 juillet 2013 - 15 sept. 2012 à 00:03
Bonsoir,
j'ai fait aupart avant une application avec java et a chaque fois j'utilise ActionListener et actionPerformed pour les boutons et la je suis tombé sure MouseClicked donc je veux savoir s'il ont le meme effet?
A voir également:

2 réponses

lolita-01 Messages postés 90 Date d'inscription mercredi 5 janvier 2011 Statut Membre Dernière intervention 26 juillet 2013
13 sept. 2012 à 01:49
si quelqu'un a une idée sur ce sujet merci de me répondre :)
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
Modifié par KX le 13/09/2012 à 10:09
Le principe est le même, il définit une méthode à appeler en réponse à un évènement, sauf que l'évènement en question est différent.

Par exemple :
Un JButton peut-être activé, aussi bien par un clic, que par l'appui de la barre d'espace.
L'ActionEvent est donc le résultat d'une de ces deux actions, alors que le MouseEvent est lui spécifique au clic de souris. Pour autant, le MouseEvent peut exister sans activer le bouton (on clic sur le bouton, mais on relâche la souris en dehors du bouton).
Et pour le KeyEvent c'est encore différent puisque (par défaut) seul le relâchement de la barre d'espace va provoquer l'activation du bouton, alors que le bouton de tabulation va passer au composant suivant (et déclencher un FocusEvent), et les autres touches seront sans effet.

Donc l'actionListener n'a pas le même effet que les autres Listener, il se déclenche seulement lorsque l'action a eu lieu, alors que les autres Listener repèrent les évènements particuliers qui permettent d'évaluer comme cette action réussie ou non.

Voici un petit code avec quelques boutons qui affichent certains Listener.
À tester (entre autre) :
* l'utilisation de la tabulation pour se déplacer d'un bouton au suivant
* l'utilisation de la barre d'espace pour déclencher l'activation du bouton
* l'utilisation de la souris pour cliquer un bouton, mais en le relâchant ailleurs pour ne pas activer le bouton.

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JButton;
import javax.swing.JFrame;

public class Test
{
    public static void main(String...Args)
    {
        JFrame frame = new JFrame();
        frame.setLayout(new GridLayout(3,3));

        for (int i=0; i<3; i++)
        for (int j=0; j<3; j++)
        {
            final String text = String.valueOf(3*i+j+1);

            JButton button = new JButton(text);
    
            button.addActionListener(new ActionListener()
            {
                public void actionPerformed(ActionEvent e) 
                {
                    System.out.println(text+"\tactionPerformed");
                }
            });
    
            button.addMouseListener(new MouseListener()
            {    
                public void mouseClicked(MouseEvent arg0)
                {
                    System.out.println(text+"\tmouseClicked");
                }
                
                public void mouseEntered(MouseEvent arg0) 
                {
                    System.out.println(text+"\tmouseEntered");
                }
                
                public void mouseExited(MouseEvent arg0) 
                {
                    System.out.println(text+"\tmouseExited");                
                }
                
                public void mousePressed(MouseEvent arg0)
                {
                    System.out.println(text+"\tmousePressed");    
                }
                
                public void mouseReleased(MouseEvent arg0)
                {
                    System.out.println(text+"\tmouseReleased");    
                }
            });
            
            button.addKeyListener(new KeyListener()
            {
                public void keyPressed(KeyEvent arg0) 
                {
                    System.out.println(text+"\tkeyPressed");    
                }
                
                public void keyReleased(KeyEvent arg0)
                {
                    System.out.println(text+"\tkeyReleased");    
                }
                
                public void keyTyped(KeyEvent arg0)
                {
                    System.out.println(text+"\tkeyTyped");    
                }
            });
            
            button.addFocusListener(new FocusListener()
            {
                @Override
                public void focusGained(FocusEvent arg0)
                {
                    System.out.println(text+"\tfocusGained");
                }

                @Override
                public void focusLost(FocusEvent arg0)
                {
                    System.out.println(text+"\tfocusLost");
                }
            });
            
            frame.add(button);
        }
        
        frame.setSize(200,200);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}
La confiance n'exclut pas le contrôle
0
lolita-01 Messages postés 90 Date d'inscription mercredi 5 janvier 2011 Statut Membre Dernière intervention 26 juillet 2013
15 sept. 2012 à 00:03
merci :) ça m'aide a mieux comprendre
0