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

Interfaces Graphiques en Java Discussion :

Problème avec GridBagLayout


Sujet :

Interfaces Graphiques en Java

  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Novembre 2010
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 273
    Par défaut Problème avec GridBagLayout
    Bonjour,

    J'aimerais obtenir une fenetre avec 3 lignes. La ligne du milieu doit être décomposée en deux parties. Pour cela j'utilise un GridBagLayout.

    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
    JPanel monPanneau = JPanel(new GridBagLayout());
    GridBagConstraints c = new GridBagLayout();
     
    // première colonne
    c.gridx = 0;
    // première ligne
    c.gridy = 0;
    MonPanneau.add(new JLabel("1"), c);
     
    // deuxième ligne
    c.gridy = 1;
    MonPanneau.add(new JLabel("2"), c);
     
    // deuxième colonne
    c.gridx =1;
    MonPanneau.add(new JLabel("3"), c);
     
    // troisième ligne
    c.gridy = 2;
    MonPanneau.add(new JLabel("4"), c);
    Mon 2 et mon 3 sont comme je les veux. Par contre mon 1 est aligné sur le 2 et mon 4 est aligné sur le 3. J'aimerais que le 1 et le 4 soit au milieu de la colonne. Là j'ai bien l'impression que mon GridBagLayout considère que j'ai deux colonnes tout le temps alors que je n'en spécifie 2 que sur la deuxième ligne.

    Merci de votre aide.

  2. #2
    Membre Expert Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Par défaut
    Il faut utiliser gridwidth pour indiquer le nombre de case horizontal occupé par le composant :
    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
    //A la va vite 
    c.gridx = 0;
    c.gridy = 0;
    c.gridwidth= 2;
    MonPanneau.add(new JLabel("1"), c);
     
    c.gridx = 0;
    c.gridy = 1;
    c.gridwidth= 1;
    MonPanneau.add(new JLabel("2"), c);
     
    c.gridx = 1;
    c.gridy = 1;
    c.gridwidth= 1;
    MonPanneau.add(new JLabel("3"), c);
     
    c.gridx = 0;
    c.gridy = 2;
    c.gridwidth= 2;
    MonPanneau.add(new JLabel("4"), c);

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Novembre 2010
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 273
    Par défaut
    Merci ça marche bien mais je ne mets pas tout de suite en résolu j'aurai surement d'autres questions.

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Novembre 2010
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 273
    Par défaut
    je recherche maintenant un moyen de définir la taille des lignes de mon GridBagLayout. Et je n'ai pas trouvé mon bonheur ni dans GridBagConstraints ni dans GridBagLayout. J'ai trouvé quelqu'un qui disait d'utiliser les méthodes de Component?

  5. #5
    Membre Expert Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Par défaut
    Concernant la taille des lignes il faut utiliser un weighty (ou weighty pour les colonnes).
    C'est la politique de redimensionnement.
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ligne1.weighty = 0.5f;
    ligne2.weighty = 0.25f;
    ligne3.weighty = 0.25f;
    La ligne 1 prendra 50% de la fenêtre en place.

    Warning : penser à mettre weighty à 0.0f par défaut. La ligne prendra comme taille la taille du composant qu'elle contient.

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

Discussions similaires

  1. Problème avec GridBagLayout
    Par JeremGamer dans le forum Agents de placement/Fenêtres
    Réponses: 13
    Dernier message: 30/09/2013, 15h43
  2. Problème avec gridbaglayout
    Par Mike888 dans le forum AWT/Swing
    Réponses: 13
    Dernier message: 13/10/2009, 21h38
  3. Problème avec GridBagLayout
    Par alexis0587 dans le forum Agents de placement/Fenêtres
    Réponses: 6
    Dernier message: 25/03/2009, 22h57
  4. Problème avec GridBagLayout dans JPanel
    Par caneman dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 19/12/2006, 22h32
  5. [Swing] Problème avec les GridBagLayout
    Par CrazySeb dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 28/04/2006, 14h47

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