IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

Problème avec un listener


Sujet :

AWT/Swing Java

  1. #1
    Expert confirmé
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2003
    Messages
    1 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2003
    Messages : 1 331
    Points : 4 317
    Points
    4 317
    Par défaut Problème avec un listener
    Bonjour,
    J'ai besoin d'associer a un bouton une valeur pour un evenement (le commentaire dans le code).
    Or je ne sais pas comment faire, j'utilise le code ci-dessous pour le moment :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    private String currentClassCode;
    private JPanel classView() {
    	String[] tags=professions.getClassTags();
    	JPanel icons=new JPanel(new GridLayout(1, tags.length));
    	JButton[] bprof=new JButton[tags.length];
    	for(int i=0; i<tags.length; i++) {
    		bprof[i]=new JButton(new ImageIcon("ressources/images/class/"+tags[i]+".gif"));
    		bprof[i].setSize(90, 90);
    		currentClassCode=tags[i];
    		bprof[i].addActionListener(new ActionListener(){
    			public void actionPerformed(ActionEvent ae){
    				//associer currentClassCode=tags[i];
    				list.setViewportView(attributeView(professions.getClassByCode(currentClassCode)));
    			}
    		});
    		icons.add(bprof[i]);
    	}
    	return icons;
    }
    Quelqu'un pourrait m'aider s'il vous plait.
    Merci d'avance.

  2. #2
    Membre expert
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Points : 3 401
    Points
    3 401
    Par défaut
    Déjà je t'en prie vire le 'PB' et écrit plutôt 'Problème' car c'est peut etre un détail mais ça donne des préjugés quant à l'auteur du message . Ensuite, tu ne pourras pas attribuer une valeur à 'currentClassCode' car il faut qu'elle soit déclarer en final pour qu'elle soit acceptée dans ta classe anonyme ActionListener, et qui dit final dit impossible à modifier. Tu peux seulement implementer ActionListener dans la classe principal qui déclare la variable 'currentClassCode'. Bonne chance.

  3. #3
    Expert confirmé
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2003
    Messages
    1 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2003
    Messages : 1 331
    Points : 4 317
    Points
    4 317
    Par défaut
    Pour pallier au problème, j'ai fait hériter à JButton une classe pour conserver les informations du bouton ce qui donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    private class ClassButton extends JButton {
    	public static final long serialVersionUID=0;
    	public  String classCode;
    	public ClassButton(ImageIcon i) {
    		super(i);
    		this.addActionListener(new ActionListener(){
    			public void actionPerformed(ActionEvent ae){
    				list.setViewportView(attributeView(professions.getClassByCode(classCode)));
    			}
    		});
    	}
     
    }
    Je ne sais pas si c'est la meilleure solution mais cela fera l'affaire en attendant

  4. #4
    Membre éclairé
    Avatar de bbclone
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 537
    Points : 704
    Points
    704
    Par défaut
    je comprend pas ce qeu tu veut faire.

    mais si tu a "besoin d'associer a un bouton une valeur pour un evenement" le plus simple c'est d'utiliser un put et getClientProperty

    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    JButton myButton = new JButton("This is a button");
    myButton.putClientproperty("something", new MyObject());
    myButton.addWhatEverListener() {
       public void actionPerformed(ActionEvent event) {
          JButton b = (JButton) event.getSource();
          MyObject o = b.getClientProperty("something");
       }
    }
    comme ca dans le bouton tu peux rajouter des donnees! ce que tu veux mais pas trop exagerer non plus ;-).

  5. #5
    Expert confirmé
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2003
    Messages
    1 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2003
    Messages : 1 331
    Points : 4 317
    Points
    4 317
    Par défaut
    Merci, j'avait juste besoin de stocker une valeur avec ce biuton

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ellipse : problème avec MouseOver listener
    Par Pwill dans le forum Flex
    Réponses: 2
    Dernier message: 16/06/2010, 14h54
  2. Problème avec le listener
    Par sofien dans le forum Connexions aux bases de données
    Réponses: 2
    Dernier message: 17/12/2008, 08h24
  3. [JButton][JTabbedPane] Problème avec un listener
    Par mitnick2006 dans le forum Composants
    Réponses: 14
    Dernier message: 16/08/2008, 19h28
  4. [FLASH 8] Problème avec les listener
    Par aldo-tlse dans le forum Flash
    Réponses: 11
    Dernier message: 01/02/2007, 16h04
  5. [JList] problème avec 2 listeners
    Par papy_tergnier dans le forum Composants
    Réponses: 2
    Dernier message: 21/06/2004, 10h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo