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

 Java Discussion :

Répartition de Jpanels dans un Jpanel


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 227
    Par défaut Répartition de Jpanels dans un Jpanel
    Bonjour.
    Je crée dans un tableau des petits JPanel panneauC qui contiennent à gauche un checkbox et à droite un Jlabel (je sépare volontairement le checkbox du label pour pouvoir gérer les clics de souris sur le label différemment du checkbox).

    J'ajoute ensuite les panneauC dans un JPanel panneauListeWaypointsAvecAscenseurs dont le layout est un GridLayout(0, 1) pour que les panneauC soient affichés les uns au-dessus des autres.
    panneauListeWaypointsAvecAscenseurs est contenu dans un JScrollPane:
    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
     
     
    for(int i=0;i<nombreBoutonsCheckbox;i++) {
    			JCheckBox boutonC=new JCheckBox();
    			boutonC.setSelected(true);
    			boutonC.setOpaque(false);
    			boutonC.addItemListener((ItemListener) PanneauGauche.panneauListeWaypointsAvecAscenseurs);
    			JLabel labelC=new JLabel(TraceGPXViewer.listeWaypoints.get(i).getNom());
    			labelC.setOpaque(false);
    			JPanel panneauC = new JPanel(new FlowLayout(FlowLayout.LEFT));
    			panneauC.setOpaque(false);
    			panneauC.setPreferredSize(new Dimension(100,26));
    			panneauC.setMaximumSize(new Dimension(100,26));
    			panneauC.add(boutonC);
    			panneauC.add(labelC);
    			PanneauGauche.panneauListeWaypointsAvecAscenseurs.add(panneauC);
    			PanneauGauche.tableauBoutonsCheckbox[i]=boutonC;
    			PanneauGauche.tableauLabelsCheckbox[i]=labelC;
    		}
    Mon problème, c'est que les panneauC se répartissent uniformément dans panneauListeWaypointsAvecAscenseurs. Le réglage de setMaximumSize ne change rien. Comment faire pour que les panneauC soient collés les uns aux autres sans se répartir uniformément?
    Merci.

  2. #2
    Membre émérite
    Inscrit en
    Mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Par défaut
    Bonjour,

    Qu'entends-tu par :
    les panneauC se répartissent uniformément dans panneauListeWaypointsAvecAscenseurs
    Et que souhaites-tu avoir exactement?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 227
    Par défaut
    Ben en fait, si le panneau de code ci-dessous représente panneauListeWaypointsAvecAscenseurs , j'ai:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    contenuPanneauC1
     
     
     
     
    contenuPanneauC2
     
     
     
     
    contenuPanneauC3
    au lieu de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    contenuPanneauC1
    contenuPanneauC2
    contenuPanneauC3

  4. #4
    Membre émérite
    Inscrit en
    Mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Par défaut
    D'accord, je vois mieux

    Il faut que tu t'intéresses au layout du composant dans lequel se trouve le composant utilisant le GridLayout.

    En fait, ton composant parent "A" (celui avec le GridLayout) prend la place que son composant parent "B" lui donne. Ensuite, "A" découpe la place qui lui est attribuée de manière équitable entre toutes les 'cellules'.

    Il faut donc que ton composant "B" attribue moins de place à "A". Si tu lui donnes un FlowLayout (par exemple), cela devrait aller.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 227
    Par défaut
    OK mais mon composant B est un JScollpane (comme écrit plus haut )et je ne peux donc pas régler son Layout: il n'accepte que ScrollPaneLayout.

  6. #6
    Membre émérite
    Inscrit en
    Mars 2006
    Messages
    848
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mars 2006
    Messages : 848
    Par défaut
    Une solution simple est de rajouter un JPanel (avec le layout que tu veux) entre A et B.

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

Discussions similaires

  1. Une image dans un Jpanel dans un Jpanel dans un Jframe
    Par ThomasH dans le forum Agents de placement/Fenêtres
    Réponses: 9
    Dernier message: 09/12/2009, 20h23
  2. problème affichage JPanel dans un JPanel
    Par rburney dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 02/04/2008, 11h36
  3. Position Jpanel dans un Jpanel
    Par arnauld_2 dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 28/12/2007, 17h52
  4. jscrollbar dans un jpanel dans un jsplitpane
    Par Clilmbatize dans le forum Interfaces Graphiques en Java
    Réponses: 2
    Dernier message: 04/05/2007, 09h25
  5. IHM - Inclure un JPanel dans un JPanel
    Par fouinny dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 08/04/2007, 22h08

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