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 :

Variable irrécuperable hors de mon JComboBox


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 10
    Par défaut Variable irrécuperable hors de mon JComboBox
    Bonjour,

    On doit réaliser un emploi du temps en java. Mon problème est qu'une variable ici promo doit pouvoir etre connu au niveau au dessus du JComboBox. Donc au niveau du bouton ajouter.

    Voici une partie de mon programme
    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
     
    ajouter.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
     
    combo_0.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent ae) {
    final String promo  = (String) combo_0.getSelectedItem();
     
    }});
     
    tableau[41].setText(promo);
    tableau[41].setOpaque(true);
    tableau[41].setBackground(Color.GREEN);
     
    }});

    Les msg d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    GrilleEdt.java:540: cannot find symbol
    symbol: variable promo
    tableau[41].setText(promo);
    Je souhaite donc afficher le string promo récupéré dans le JComboBox et le mettre dans un JLabel au moment du click sur le JButton ajouter.

    pour info ajouter est un JButton
    combo_0 est un JComboBox
    tableau[41] est un JLabel

    Merci d'avance pour votre aide.

  2. #2
    Membre émérite Avatar de fraco
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 750
    Par défaut
    Salut !

    Il ne faut pas créer le string promo à l'intérieur du listener...
    (pourquoi final, d'ailleurs ?)

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 10
    Par défaut
    Citation Envoyé par fraco Voir le message
    Salut !

    Il ne faut pas créer le string promo à l'intérieur du listener...
    (pourquoi final, d'ailleurs ?)

    Bonjour déja merci pour votre réponse j'avais déja éssayer de declarer mon string hors du listner et j'obtiens l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    GrilleEdt.java:537: local variable promo is accessed from within inner class; needs to be declared final
    		 promo  = (String)combo_0.getSelectedItem();
    et lorsque je la déclare en final :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    GrilleEdt.java:537: cannot assign a value to final variable promo
    		 promo  = (String)combo_0.getSelectedItem();
    Je suis perdu car en plus mon programme n'est pas du tout propre (tout dans une seul classe ===> je débute en java et on nous demande des choses assez complexe pour notre niveau).

    Merci d'avance

  4. #4
    Membre émérite Avatar de fraco
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 750
    Par défaut
    Salut !

    Je corrige ma précédente réponse :
    il faut mettre tableau[41].setText(promo); dans le listener, où le string "promo" est connu.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public void actionPerformed(ActionEvent ae) {
         final String promo  = (String) combo_0.getSelectedItem();  
         tableau[41].setText(promo);  
    }});
    ...ça devrait le faire, je crois.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 10
    Par défaut
    Citation Envoyé par fraco Voir le message
    Salut !

    Je corrige ma précédente réponse :
    il faut mettre tableau[41].setText(promo); dans le listener, où le string "promo" est connu.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public void actionPerformed(ActionEvent ae) {
         final String promo  = (String) combo_0.getSelectedItem();  
         tableau[41].setText(promo);  
    }});
    ...ça devrait le faire, je crois.

    Merci pour votre réponse éffectivement cela fonctionne un peu mais pas totalement car je suis obligé d'appuyer sur le bouton ajouter pour qu'il puisse commencer à utiliser le listener du combo, malheuresement ça ne me convient pas

    En même temps c'est de ma faute j'avais fait l'erreur dans mon premier post ...

    Du coup après avoir passé toute ma journée à chercher une solution j'ai décider pour cette fenetre de creer une classe uniquemet pour celle ci car c'est vraiment un "bazar" mon prog :

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    import javax.swing.*;
    import java.awt.GridLayout;
    import java.awt.BorderLayout;
    import java.awt.event.ActionListener;
    import java.awt.event.ActionEvent;
     
     
     
    public class FenetreAdmin {
    String promo;
    promo= new String ("");
     
    // Construction fenetre 
    combo_0.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent ae) {
    promo  = (String) combo_0.getSelectedItem();
     
    }});
     
     
    ajouter.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
    System.out.println("ENtree dans le listener");
    System.out.println("la promo est :"+promo);
    }});
     
     
    }
     
     
    }


    Cela fonctionne mais maintenant quand je rajoute la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tableau[41].setText(promo);
    tableau [41] étant déclarré dans ma première classe GrilleEdt il ne sont pas reconnu dans ma seconde classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    FenetreAdmin.java:135: cannot find symbol
    symbol: variable tableau
    tableau[41].setText(promo);
    Merci davance pour votre lecture et patience

Discussions similaires

  1. récupérer des variables json hors de $.post
    Par Alexdezark dans le forum jQuery
    Réponses: 3
    Dernier message: 29/07/2010, 18h44
  2. Utilisation des variables de vue dans mon formulaire
    Par kaking dans le forum Zend_Form
    Réponses: 1
    Dernier message: 07/05/2010, 10h53
  3. [ASP.net] Héberger des images hors de mon site
    Par Rodie dans le forum Gratuit
    Réponses: 3
    Dernier message: 17/08/2007, 12h23
  4. Détecter un clic hors de mon programme
    Par daladim dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 12/11/2005, 17h08

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