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
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
A voir également:
- Java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Java décompiler - Télécharger - Langages
- Jeux java itel touche - Forum Mobile
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
13 sept. 2012 à 01:49
si quelqu'un a une idée sur ce sujet merci de me répondre :)
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
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.
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
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
15 sept. 2012 à 00:03
merci :) ça m'aide a mieux comprendre