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

Composants Java Discussion :

Utiliser les méthodes des boutons crées en rafale.


Sujet :

Composants Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 49
    Points : 31
    Points
    31
    Par défaut Utiliser les méthodes des boutons crées en rafale.
    Bonjour,

    J'ai posté un message hier pour savoir comment créer des boutons en rafale. J'ai trouvé la réponse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for(i=0;i<15;i++)
    {
       c = Integer.toString(i);
        panel1.add( new button(c);
    }
    Cette méthode marche bien mais apres je veux creer des évènements sur action d'un certain bouton. Comment acceder à la méthode d'un bouton qui n'a pas de nom.

    Par exemple avant b1.addActionListener et maintenant

    XXX.addActionListener

    Voila mon problème j'espère que j'ai été assez clair.

    Merci

    [ Modéré par Bulbo ]
    Ajout d'un tag dans le titre
    Ajout des balises code
    Les Règles du Forum

  2. #2
    Membre du Club Avatar de JWillow
    Inscrit en
    Juin 2003
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 57
    Points : 67
    Points
    67
    Par défaut
    et bien si tu faisais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    for(i=0;i<15;i++) 
    { 
    c = Integer.toString(i); 
    Button b = new Buttont(c);
    b.addActionListener(new ActionListener(){
       public void actionPerformed(ActionEvent event){
         // TON ACTION
      }
     
    });
    panel1.add(b); 
    }
    [ Modéré par Bulbo ]
    Ajout des balises code
    Les Règles du Forum

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 49
    Points : 31
    Points
    31
    Par défaut Méthode objet crée en rafales suite
    Je ne peux pas tester ce code pour l'instant mais en le regardant je pense que ca ne va pas marcher puisque je vais essayé de créer X fois l'objet b donc je pense qu'il y aura une erreur de compilation me disans que l'objet b existe déjà?

    Quand pensez vous? Avez vous une autre méthode?

    Merci

  4. #4
    Membre habitué
    Inscrit en
    Septembre 2003
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 174
    Points : 194
    Points
    194
    Par défaut
    Salut
    Si ca va marcher. Le code propose par JWillow est correct car dans chaque iteration de la boucle, il declare un nouvel object b, donc pas de probleme de compilation.
    sylvain_2020

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 49
    Points : 31
    Points
    31
    Par défaut Oui d'accord mais...................
    Effectivement ca marche bien. J'ai regarder le nom de mes boutons crées ils ont pour nom des chiffres de 0 à n.
    Par contre comment je dois faire pour mes méthodes? Si j'en met une dans la boucle tout mes boutons sont identiques et les évènements aussi
    .
    Je me suis donc dis que je devais récuperer le nom pour pourvoir faire un truc du genre "nom.setBackgroung(color.green)" et cela en dehors de la boucle. getLabel me retourne des numéros de 0 à n alors j'ai essayé avec ses numéros : 0.set..................... mais le compilateur n'aime pas ca. Normal!!!!!

    Désolé c'est peut etre des questions de bases je suis débutant.

    Merci

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 49
    Points : 31
    Points
    31
    Par défaut Oui d'accord mais...................
    Effectivement ca marche bien. J'ai regarder le nom de mes boutons crées ils ont pour nom des chiffres de 0 à n.
    Par contre comment je dois faire pour mes méthodes? Si j'en met une dans la boucle tout mes boutons sont identiques et les évènements aussi
    .
    Je me suis donc dis que je devais récuperer le nom pour pourvoir faire un truc du genre "nom.setBackgroung(color.green)" et cela en dehors de la boucle. getLabel me retourne des numéros de 0 à n alors j'ai essayé avec ses numéros : 0.set..................... mais le compilateur n'aime pas ca. Normal!!!!!

    Désolé c'est peut etre des questions de bases je suis débutant.

    Merci

  7. #7
    Membre habitué
    Inscrit en
    Septembre 2003
    Messages
    174
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 174
    Points : 194
    Points
    194
    Par défaut
    Ce serait plus simple de nous dire exactement ce que tu veux faire ... parce que la ce n'est pas tres clair.
    Sinon, si tu veux par exemple changer le background d'un bouton en particulier, tu peux sauvegarder les boutons dans une List et ensuite acceder a chacun des boutons par son index.
    Je reprends l'exemple donne par JWillow et je mets le background en vert :
    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
    		List boutons = new ArrayList();
    		String c;
    		int i;
    		for (i = 0; i < 15; i++) {
    			c = Integer.toString(i);
    			Button b = new Button(c);
    			b.addActionListener(new ActionListener() {
    				public void actionPerformed(ActionEvent event) {
    					// TON ACTION
    				}
    			});
    			panel1.add(b);
    			boutons.add(b);
    		}
    		/* Je recupere le 5e bouton (index 4)*/
    		Button bouton = (Button)boutons.get(4);
    		bouton.setBackground(Color.GREEN);
    C'est une possibilite, mais le plus simple serait que tu sois plus clair dans ce que tu veux faire.

    sylvain_2020

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 49
    Points : 31
    Points
    31
    Par défaut
    Effectivement je pense que c'est la méthode qu'il me faut mais il y a je n'ai pas trop compris le cast du bouton. Et à l'execution j'ai un message du type classcastexception.

  9. #9
    Membre du Club Avatar de JWillow
    Inscrit en
    Juin 2003
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 57
    Points : 67
    Points
    67
    Par défaut
    Le ClassCastException est dû si t'as fait un copier-coller à l'objet Button alors que tu dois manipuler des JButton.

    En gros si tu mets un JButton dans ta liste alors tu dois récupérer un JButton

    PS : (je laisse volontairement les questions d'Interface et d'héritage de coté)

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 08/04/2011, 18h30
  2. Réponses: 1
    Dernier message: 10/05/2006, 19h45
  3. Pouvoir gérer les actions des boutons dans une classe
    Par Cyborg289 dans le forum Composants
    Réponses: 2
    Dernier message: 08/07/2005, 12h08
  4. Détecter les états des boutons (enfoncé, relaché)
    Par Tray dans le forum C++Builder
    Réponses: 3
    Dernier message: 17/03/2005, 20h12
  5. Comment obtenir les Handles des boutons systèmes de Windows ?
    Par Desraux dans le forum API, COM et SDKs
    Réponses: 6
    Dernier message: 22/12/2004, 22h20

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