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 :

probleme de visibilite d'un JPanel


Sujet :

AWT/Swing Java

  1. #1
    Membre confirmé
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Points : 642
    Points
    642
    Par défaut probleme de visibilite d'un JPanel
    voila un ptit dessin pour mieux comprendre ce que je veux faire :



    j'ai donc 3 JPanels , le panel3 me servant de multi-panel , via une

    selection dans le JComboBOx (en esperant que la partie du code y correspondant soit bonne )

    j'ai une classe definissant le "panel 1" ainsi que ses differents composants
    et la classe principale ou je cree ma fenetre et je lui ajoute le "panel 1"
    mais a l'affichage je n'ai qu'une fenetre vide et je vois pas se que j'ai oublié suis sur que c'est tout bete mais bon .

    classe fenetre :
    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
     
    public class Fenetre extends JFrame 
    {
     Fenetre()
        {        
            super("hello");
            Container leConteneur = this.getContentPane();
            CadrePrincipale cadre = new CadrePrincipale();
            leConteneur.add(cadre);
        }
        public static void main (String [] args)
        {
         Fenetre fe= new Fenetre();         
         fe.pack();
         fe.setVisible(true);
        }
    }
    et celui du JPanel1 :
    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
     
    public class CadrePrincipale extends JPanel implements ItemListener
    {
      public CadrePrincipale()
      {
     
        /** cadre principal */
        cadre = new JPanel();
        cadre.setSize(200,400);
        cadre.setVisible(true);
        cadre.setLayout(new BorderLayout());        
     
     
        /** definition du panneau d'entete */
        entete = new JPanel();
        cadre.add(entete);      // ajout du l'entete dans le cadre        
        entete.setBounds(0, 0, 200, 100);
        entete.setLayout(new BorderLayout());        
        listeProduit = new JComboBox();
        listeProduit.addItem("panneau1");
        listeProduit.addItem("panneau2");
        listeProduit.addItemListener(this);
        entete.add((new JLabel("Choice your product")),BorderLayout.NORTH);
        entete.add(listeProduit,BorderLayout.CENTER);
     
        /** definition du panneau de corps */
        corps = new JPanel();
        cadre.add(corps); // ajout du l'entete dans le cadre        
        corps.setBounds(0, 100, 200, 300);
        gestionnaireDePanneau = new CardLayout(); 
        corps.setLayout(gestionnaireDePanneau);
        un = new PremierPanel();
        deux = new DeuxiemePanel();
        corps.add(un,"premier panneau");
        corps.add(deux,"deuxieme panneau");    
     
       }
       public void itemStateChanged(ItemEvent evt)
       {
          if ( ( (String)listeProduit.getSelectedItem() ).equals("panneau1")  )
             gestionnaireDePanneau.show(corps,"premier panneau");
          else 
             gestionnaireDePanneau.show(corps,"deuxieme panneau");
        }
    }

  2. #2
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 130
    Points : 114
    Points
    114
    Par défaut
    Il serait bien que ta classe CadrePrincipal hérite de JPanel. Et au lieu d'utiliser dedans ton objet cadre, tu mes "this".

    Parce que pour l'instant tu ajoutes un objet qui apparemment n'est pas un JPanel mais en contient.

  3. #3
    Membre confirmé
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Points : 642
    Points
    642
    Par défaut
    je n'ai mis le code que des methodes et non celui de la classe entiere

    Fenetre herite deja de Jframe et CadrePrincipale de JPanel

    je remplace cadre par this pour voir ce que cela donne

    edit : this sa passe pas
    et j'ai mi le code entier des 2 classes

  4. #4
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 130
    Points : 114
    Points
    114
    Par défaut
    au lieu de mettre :
    cadre = new JPanel();
    tu devrais avoir :
    super();

    Ainsi, ton objet (JPanel) n'est pas nul : il doit l'être sinon.


    et ensuite this.setsize();
    this.setvisible...

  5. #5
    Membre confirmé
    Avatar de link256
    Profil pro
    Développeur Java
    Inscrit en
    Février 2003
    Messages
    596
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2003
    Messages : 596
    Points : 642
    Points
    642
    Par défaut
    c'etait bien ca
    merci Yannick_from_31 vbmenu_register("postmenu_979185", true);

    me reste plus qu'a réagrange l'affichage des differents panels

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 01/05/2007, 15h16
  2. Probleme de visibilite de variable
    Par Slumpy dans le forum VB.NET
    Réponses: 7
    Dernier message: 27/04/2007, 16h33
  3. probleme pour récupérer dimension de JPanel
    Par L4BiN dans le forum AWT/Swing
    Réponses: 8
    Dernier message: 11/01/2007, 12h39
  4. probleme pour dessiner dans un JPanel
    Par L4BiN dans le forum AWT/Swing
    Réponses: 9
    Dernier message: 02/08/2006, 15h01
  5. [FLASH 8] probleme de visibilité d'un champ
    Par aldo-tlse dans le forum Flash
    Réponses: 1
    Dernier message: 12/10/2005, 15h09

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