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 :

[Syntaxe] PETIT probl avec un Jlabel


Sujet :

AWT/Swing Java

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 15
    Points : 10
    Points
    10
    Par défaut [Syntaxe] PETIT probl avec un Jlabel
    bonjour a tous,
    etant un peu debutant en java ,je viens vous demander de l'aide au sujet d'un Jlabel,
    j'ai creer un frame posédant un bouton et un label et je voudrais faire apparaitre dans le LABEL un texte quand je click sur le bouton,j'ai créé les gestionnaires d'événement mais au moment ou je veux déclarer dans le label qu'il doit afficher un texte il m'indique "local variable conteneur is accessed from within inner class; needs to be declared final"

    voici le bout de mon code pose probleme =

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    //gestionnaire du bouton !!!!
    bouton.addActionListener(new ActionListener(){
    
    public void actionPerformed(ActionEvent e){
    jlabel.setText("message a afficher dans le JLABEL"); System.out.println ("TU VIENS D'APPUYER SUR LE BOUTON !!");
    }
    );
    j'éspére que le code n'est pas trop illisible !!!,merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Il suffit de lire ton erreur : "Needs to be declared final"...

    Ca veut dire que ta variable conteneur (je la vois pas ) doit être déclarée final pour être accessible depuis une classse interne.

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 15
    Points : 10
    Points
    10
    Par défaut re
    je doit creer un conteur pour chaque objet???,j'utilise le conteur du frame pour ajouter bouton,label....etc=

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    container final conteneur=null
    .....
    .....
    conteneur=this.getContentPane();//je recupere le conteneur du frame
    .....
    ......
    conteneur.add(le_jlabel)//je l'ai ajoute
    conteneur.add(le_bouton)....
    ......
    .....
    le_jlabel=new Jlabel;
    mai arriver dans le gestionnaire du bouton =

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    bout.addActionListener(new ActionListener(){
      public void actionPerformed(ActionEvent e) {
        conteneur.le_jlabel.setText("message");
        System.out.println ("TU VIENS D'APUYER SUR LE BOUTON !!"); 
      });
    en fait il pose probleme du fait que la variable "le_jlabel" n'est pas static,j'ai beau la mettre met rien ny fais

  4. #4
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Pas besoin qu'elle soit static, et de plus ce n'est pas ainsi qu'on accède aux variables de conteneur, surtout que ton label n'est pas une variable de conteneur mais de la classe courante...

    C'est ton label qu'il faut déclarer final et ensuite, il ne faut pas faire conteneur.jlabel.setText mais jlabel.setText()

  5. #5
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 15
    Points : 10
    Points
    10
    Par défaut re-re
    je declaré mon label comme ceci =
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    JLabel le_label=null;
    le_label=new JLabel();
    le_label.setBounds(0,120,250,23);
    conteneur.add(text);
    je dois donc=
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    JLabel static le_label=null;
    le_label=new JLabel();
    le_label.setBounds(0,120,250,23);
    conteneur.add(text);

  6. #6
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Oui, sauf que tu dois ajouter le_label a conteneur et pas text.

    De plus, sache que les conventions Java impliquement de faire commencer ses variables par des minuscules et que chaque mot qui les composent par une majuscule.

    Donc ta variable le_label devrait être leLabel

  7. #7
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 15
    Points : 10
    Points
    10
    Par défaut derniere-fois
    en fait j'ai essayer de la déclarer mai toutjour le meme probleme,voici mon code complet !!!!=


    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    class Graph extends JFrame  //CREATION D'UNE CLASSE JFRAME !!!!!
        {
         /*public void paint (Graphics g)
           {/*g.setColor(Color.white);
     
            g.drawLine(0,0,300,200);
            g.setColor(Color.blue);
            g.drawLine(300,0,0,200);
            g.drawString("les lignes",400,250);
     
    void ajoutex()
         {text.setText("sa marche gamin !!!!");}
     
            WindowAdapter win=new WindowAdapter(){
            public void windowClosing(WindowEvent e){System.exit(0);}};
            this.addWindowListener(win);
            Container conteneur=null;
            Button  bouton=null;
            conteneur=this.getContentPane();
            conteneur.setLayout(new FlowLayout());
            bouton=new Button;
            bouton.setText("bouton d'essais");
            conteneur.add(bouton);*/
     
     
     
             public static void main(String args[])
                 {
                  Graph r=new Graph();
                  r.setSize(300,300);
                  r.setTitle("Mon tout premier Frame");
                                 // GESTION DES EVENEMENT (PAGE 101) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     
                        WindowAdapter win=new WindowAdapter()//CREATION DU GESTIONNAIRE DEVENEMENT !!!!!
                                  {public void WindowClosing(WindowEvent e)//ICI CES LEVENEMENT DE "FERMETURE DU FRAME !!!!!
                                             {System.exit(1);}
                                    /* public void WindowActivate(WindowEvent e)
                                                  {}
                                            public void WindowClosed(WindowEvent e)
                                                         {}
                                                   public void WindowDeactivated(WindowEvent e)
                                                                {}
                                                          public void WindowDeiconified(WindowEvent e)
                                                                       {}
                                                                 public void WindowIconified(WindowEvent e)
                                                
                                  {}
                                                                        public void WindowOpened(WindowEvent e)
                                                                                     {}*/
                                     };
                     //FIN DU GESTIONNAIRE D'EVENEMENT !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                    //--------------------------------------------------------------------------------------------------------------------
                     //CREATION D'UN BOUTON (PAGE 102) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!   
     
                       JButton  bout=null;//DECLARATION DUNE VARIABLE JBUTTON
                       Container conteneur=null;//DECLARATION DU CONTENEUR DU FRAME !!!!!
     
                         r.addWindowListener(win);//WIN ETANT LE FENETRE COURANTE ON RECUPERE CES EVENEMENTS DANS CE GESTIONNAIRE !!!!
     
                           conteneur=r.getContentPane();//CONTENEUR DEVIENT LE GESTIONNAIRES DE LA FENETRE 
     
                              //conteneur.setLayout(new FlowLayout());--> LES BOUTONS EST AUTRES CE PLACERONT AUTOMATIQUEMENT AVEC CE GESTIONNAIRE DE MISES EN FORME !!!!!
     
                                conteneur.setLayout(null);//CE GESTIONNAIRE PERMET DE DEFINIR NOUS MEME LES PROPRIETER DES OBJETS CE TROUVANT DANS LE FRAME !!!!!
     
                             bout=new JButton();//ON CREE LE BOUTON !!
     
                                bout.setBounds(10,20,100,20);//LA METHODE "SETBOUND" PERMET DE DEFINIR LEMPLACEMENT EST LA DIMENSION DU BOUTON !!!
     
                                bout.setText("Lancer");//LA METHODE "SEtTEXT" PERMET DE DEFINIR LE TEXTE DANS LE BOUTON !!!!!
     
                                conteneur.add(bout);//LA VARIABLE "CONTENEUR" ETANT DEVENUS LE "frame" ON Y PLACE LE BOUTON  !!!!
     
     
                      // !DEBUT DE CREATION DUNE ZONE DE TEXTE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                      //---------------------------------------------------------------------------------------------------------------
                            final text =null;
                                 text=new Label();
                                 text.setBounds(0,120,250,23);
                                 text.setText("ces tout bon gamin!!!");
                                 conteneur.add(text);
     
     
                           //DEBUT DE CREATION DU GESTIONNAIRE DEVENEMENT DU BOUTON !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                              bout.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) 
                                               /* ATENTION !! */                   {text.setText("texte a faire apparaitre!!!");System.out.println ("TU VIENS D'APUYER SUR LE BOUTON !!"); 
                                                                      } 
                                                                                    });
     
     
                      //FIN DE CREATION DU BOUTON !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                      //---------------------------------------------------------------------------------------------------------------
                             /*ATENTION xxxxxxxxxxxxxxxxx>  */r.show();// <--on place la methode qui vas faire apparaitre le frame en dernier pour que les boutons....etc apparaisse au démarage du frame !!!!!!!
     
                            }
     }



    dsl pour les fautes !!!!

  8. #8
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Remplace ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
                             final text =null;
                                 text=new Label();
                                 text.setBounds(0,120,250,23);
                                 text.setText("ces tout bon gamin!!!");
                                 conteneur.add(text);
    Par ceci:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                             final JLabel text = new JLabel();
                                  text.setBounds(0,120,250,23);
                                  text.setText("ces tout bon gamin!!!");
                                  conteneur.add(text);
    Et tant que tu y est le par un

Discussions similaires

  1. petit probleme avec l'éditeur de builder
    Par qZheneton dans le forum C++Builder
    Réponses: 2
    Dernier message: 28/10/2004, 16h19
  2. [syntaxe]Creation table avec nom dynamique
    Par ZuZu dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 23/09/2004, 18h01
  3. [CVS] Petits déboires avec JBuilder9 et CVS
    Par Marc_P dans le forum JBuilder
    Réponses: 2
    Dernier message: 19/02/2004, 09h35
  4. [DEBUTANT] petits soucis avec un prgm de chat
    Par LechucK dans le forum MFC
    Réponses: 8
    Dernier message: 19/01/2004, 16h52
  5. [debutant] pour debbuger un petit prog avec menu
    Par niluge01 dans le forum Windows
    Réponses: 3
    Dernier message: 22/11/2003, 14h03

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