MouseListener
Fermé
SW92
Messages postés
8
Date d'inscription
dimanche 30 novembre 2014
Statut
Membre
Dernière intervention
5 janvier 2015
-
4 janv. 2015 à 19:05
SW92 Messages postés 8 Date d'inscription dimanche 30 novembre 2014 Statut Membre Dernière intervention 5 janvier 2015 - 5 janv. 2015 à 00:16
SW92 Messages postés 8 Date d'inscription dimanche 30 novembre 2014 Statut Membre Dernière intervention 5 janvier 2015 - 5 janv. 2015 à 00:16
2 réponses
SW92
Messages postés
8
Date d'inscription
dimanche 30 novembre 2014
Statut
Membre
Dernière intervention
5 janvier 2015
1
Modifié par SW92 le 4/01/2015 à 22:34
Modifié par SW92 le 4/01/2015 à 22:34
J'ai essayé de définir la classe CarteClikListener avec le code ci-dessous
Mais je bloc toujours parce que lorsque je clique sur n'import lequel des image j'obtiens "Vous avez choisi d''acheter une carte de 10000" alors que le montant devrait changé selon la carte choisi
public class CarteClikListener implements MouseListener { CompteTelephonique fen; JDialog jD; public void init() { addMouseListener(this); } public CarteClikListener(CompteTelephonique fn,JDialog jD,int x){ fn.credit=x; this.fen=fn; this.jD=jD; } public void mouseClicked(MouseEvent m){ if (m.getClickCount()==1) JOptionPane.showConfirmDialog(jD, "Vous avez choisi d''acheter une carte de "+fen.credit); } @Override public void mouseEntered(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseExited(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mousePressed(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseReleased(MouseEvent e) { // TODO Auto-generated method stub } }
Mais je bloc toujours parce que lorsque je clique sur n'import lequel des image j'obtiens "Vous avez choisi d''acheter une carte de 10000" alors que le montant devrait changé selon la carte choisi
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 4/01/2015 à 23:07
Modifié par KX le 4/01/2015 à 23:07
Bonjour,
En faisant
Ce qu'il faudrait, c'est que la valeur du "crédit" associé au CarteClikListener soit directement enregistrée dans celle-ci, pas au travers du credit du CompteTelephonique qui à mon avis ne correspond pas à la même chose (tu as le crédit de la carte, et le crédit que tu rajoutes)
Remarque : c'est une modification rapide qui devrait te permettre de résoudre ton problème, mais il faudrait revoir en profondeur ton architecture de code. En particulier tu devrais avoir des classes pour chaque entité que tu manipules. Il te manquerait donc au minimum une classe CarteRechargement.
En faisant
fn.credit=x;tu modifies
fn, or vu tes appels cela correspond toujours à
this. Donc tu changes à chaque fois la même valeur, et seule la dernière est conservée : 10000.
carte10000.addMouseListener(new CarteClikListener(this,jD,10000); public CarteClikListener(CompteTelephonique fn,JDialog jD,int x){ fn.credit=x;
Ce qu'il faudrait, c'est que la valeur du "crédit" associé au CarteClikListener soit directement enregistrée dans celle-ci, pas au travers du credit du CompteTelephonique qui à mon avis ne correspond pas à la même chose (tu as le crédit de la carte, et le crédit que tu rajoutes)
carte10000.addMouseListener(new CarteClikListener(this,jD,10000); public CarteClikListener(CompteTelephonique fn,JDialog jD,int value){ this.value=value;
Remarque : c'est une modification rapide qui devrait te permettre de résoudre ton problème, mais il faudrait revoir en profondeur ton architecture de code. En particulier tu devrais avoir des classes pour chaque entité que tu manipules. Il te manquerait donc au minimum une classe CarteRechargement.
carte10000.addMouseListener(new CarteClikListener(this,jD,new CarteRechargement(1000)); public CarteClikListener(CompteTelephonique fn,JDialog jD, CarteRechargement recharge){ this.recharge = recharge;
SW92
Messages postés
8
Date d'inscription
dimanche 30 novembre 2014
Statut
Membre
Dernière intervention
5 janvier 2015
1
5 janv. 2015 à 00:16
5 janv. 2015 à 00:16
Merci Je vais essayé avec cette méthode et vous revenir alor