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 :

JLabel dans un JPanel


Sujet :

Composants Java

  1. #1
    Membre habitué
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2002
    Messages
    329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2002
    Messages : 329
    Points : 139
    Points
    139
    Par défaut JLabel dans un JPanel
    Bonjour, je ne parviens pas à placer un JLabel au sud de son conteneur, un JPanel

    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
     
    Container contenu = getContentPane();
     
    	GridBagLayout g = new GridBagLayout();
    	contenu.setLayout(g);
     
    	GridBagConstraints c = new GridBagConstraints();
    Plab = new JPanel();
    lab=new JLabel("00:00:00");
    	lab.setEnabled(true);
        lab.setOpaque(true);
        lab.setLocation(0,50);
        Plab.setMinimumSize(new Dimension(60,20));
    	Plab.setMaximumSize(new Dimension(60,80));
    	Plab.setPreferredSize(new Dimension(60,61));
    	Plab.setOpaque(true);
    	Plab.add(lab);
    	c.anchor=GridBagConstraints.SOUTH;
    	c.gridx=1;
    	c.gridy=1;
    	c.gridheight=1;
    	c.gridwidth=3;
    	c.weightx=c.weighty=1;
    	contenu.add(Plab,c);
    JLabel reste au nord et centrer !

    Comment le déplacer en bas et choisir sa position. Je pensais que setLocation fonctionnerai mais apparemment la fonction est supplantée par une autre.

    Merci

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 179
    Points : 216
    Points
    216
    Par défaut
    Citation Envoyé par bastien Voir le message
    Comment le déplacer en bas et choisir sa position. Je pensais que setLocation fonctionnerai mais apparemment la fonction est supplantée par une autre.
    setLocation et setSize sont supplantés par le layout du container dans lequel tu mets ton composant. Dans ton, cas il semble que ce soit le Layout par défaut du JPanel (un FlowLayout) ce qui explique que ton composant soit en haut et centré.

    Moi je préfère le BorderLayout, je comprend rien au GridBagLayout

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    plab = new JPanel(new BorderLayout());
    lab = new JLabel("00:00:00");
    plab.add(lab, BorderLayout.SOUTH);
    Fred

  3. #3
    Membre habitué
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2002
    Messages
    329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2002
    Messages : 329
    Points : 139
    Points
    139
    Par défaut
    En effet, GridBagLayout est un peu particulier à utiliser !

    Ta proposition fonctionne.

    Merci

  4. #4
    Membre habitué
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2002
    Messages
    329
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2002
    Messages : 329
    Points : 139
    Points
    139
    Par défaut
    J'ai finalement utilisé GridBagLayout.
    Il faut remplir complèter toutes les propriétés de GridBagConstraints
    Par exemple :
    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
    GridBagLayout g = new GridBagLayout();
    	contenu.setLayout(g);
     
    	GridBagConstraints c = new GridBagConstraints();
     
    	MicroBtn = new JPanel();
    	MicroBtn.setMinimumSize(new Dimension(80,80));
    	MicroBtn.setMaximumSize(new Dimension(100,100));
    	MicroBtn.setPreferredSize(new Dimension(100,85));
    	MicroBtn.setEnabled(true);
    	MicroBtn.setOpaque(false);
    	c.fill=GridBagConstraints.VERTICAL;
    	c.anchor=GridBagConstraints.NORTH;
    	c.gridx=0;
    	c.gridy=0;
    	c.gridheight=2;
    	c.gridwidth=1;
    	c.weightx=1;
    	c.weighty=1;
                 contenu.add(MicroBtn,c);
    Mon incompréhension était sur fill et anchor

    En fait, lorsque l'on passe fill en VERTICAL, on force le composant à occupé tout son espace vertical et on lui indique la position à prendre dans cet espace par anchor( haut, milieu, bas, ...)

    etc etc

    GridBagLayout n'est pas plus dur que BorderLayout à utiliser, il nécessite plus de précisions dans l'attribution de ses propriétés !

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

Discussions similaires

  1. Positionner des jlabel dans un jpanel
    Par sarra02 dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 02/06/2015, 16h55
  2. Probleme avec l'ajout d'un JLabel dans un JPanel
    Par Leoo31 dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 24/03/2010, 16h21
  3. image de fond dans un JPanel avec Jlabel
    Par dawaman dans le forum Agents de placement/Fenêtres
    Réponses: 7
    Dernier message: 13/11/2009, 22h42
  4. Insérer ChartPanel dans un Jpanel ou canvas ou Jlabel
    Par harris_macken dans le forum Agents de placement/Fenêtres
    Réponses: 8
    Dernier message: 29/04/2008, 15h12
  5. comment centrer un JLabel dans un JPanel ?
    Par med_anis_dk dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 26/05/2007, 20h59

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