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

Agents de placement/Fenêtres Java Discussion :

Problème de placement avec un GridBagLayout


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 143
    Billets dans le blog
    5
    Par défaut Problème de placement avec un GridBagLayout
    Salut à tous et bonne année par la même occasion

    Je suis en train de faire des modifications sur une application Java écrite par d'autres personnes et j'ai des souci avec le GidBagLayout.
    Mon problème est le suivant:
    Je veux afficher sur la partie gauche de mon écran un JLabel avec en dessous un JTree et sur la partie droite différents label, champs de saisie et checkbox sur 2 colonnes
    Ca marche relativement bien sauf que j'ai un énorme espace entre ma partie gauche et ma partie droite. J'aimerais plutôt que cet espace se situe à la fin de la partie droite de mon JPanel.

    Voici comment sont définis les GridBagConstraints pour chaque 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
    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
     
    // ---------------------------------------------
    	// Grid bag constraints des éléments du panneau aérosol
    	// --------------------------------------------
    	// Colonne gauche
    	GridBagConstraints gbc_TypeAerosolsLabel = new GridBagConstraints(0, 0,
    		1, 1, 0.0, 0.0, GridBagConstraints.WEST,
    		GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0);
     
    	GridBagConstraints gbc_TypeAerosolsTree = new GridBagConstraints(0, 1,
    		1, GridBagConstraints.REMAINDER, 0.8, 1.0,
    		GridBagConstraints.LINE_START, GridBagConstraints.VERTICAL,
    		new Insets(20, 20, 20, 20), 0, 0);
    	// Colone droite
    	GridBagConstraints gbc_StratoLabel = new GridBagConstraints(1, 0, 1, 1,
    		0.2, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.NONE,
    		new Insets(5, 5, 5, 5), 0, 0);
    	GridBagConstraints gbc_StratoCombo = new GridBagConstraints(1, 1, 2, 1,
    		0.2, 0.0, GridBagConstraints.WEST,
    		GridBagConstraints.HORIZONTAL, new Insets(5, 5, 5, 5), 0, 0);
    	GridBagConstraints gbc_VisibiliteLabel = new GridBagConstraints(1, 2,
    		1, 1, 0.2, 0.0, GridBagConstraints.WEST,
    		GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0);
    	GridBagConstraints gbc_VisibiliteField = new GridBagConstraints(1, 3,
    		1, 1, 0.2, 0.0, GridBagConstraints.WEST,
    		GridBagConstraints.HORIZONTAL, new Insets(5, 5, 5, 5), 0, 0);
    	GridBagConstraints gbc_VisibiliteUnite = new GridBagConstraints(2, 3,
    		1, 1, 0.2, 0.0, GridBagConstraints.WEST,
    		GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0);
    	GridBagConstraints gbc_VisibiliteCB = new GridBagConstraints(1, 4, 1,
    		1, 0.2, 0.0, GridBagConstraints.WEST, GridBagConstraints.NONE,
    		new Insets(5, 5, 5, 5), 0, 0);
     
    	GridBagConstraints gbc_ConcentrationLabel = new GridBagConstraints(1,
    		5, 1, 1, 0.2, 0.0, GridBagConstraints.WEST,
    		GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0);
    	GridBagConstraints gbc_ConcentrationField = new GridBagConstraints(1,
    		6, 1, 1, 0.2, 0.0, GridBagConstraints.WEST,
    		GridBagConstraints.HORIZONTAL, new Insets(5, 5, 5, 5), 0, 0);
    	GridBagConstraints gbc_ConcentrationUnite = new GridBagConstraints(2,
    		6, 1, 1, 0.2, 0.0, GridBagConstraints.WEST,
    		GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0);
    	GridBagConstraints gbc_ConcVisButton = new GridBagConstraints(1, 7, 1,
    		1, 0.2, 0.0, GridBagConstraints.WEST, GridBagConstraints.NONE,
    		new Insets(5, 5, 5, 5), 0, 0);
    Si quelqu'un a une idée??

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    J'aurais surtout tendance à séparer physiquement les deux parties dans deux JPanel séparés. (genre en les mettant dans un JSplitPane).

    Puis de faire que sur ton JPanel de droite, le dernier champ soit en fill Horizontal, avec un weightx approprié

  3. #3
    Membre émérite
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 143
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par sinok Voir le message
    J'aurais surtout tendance à séparer physiquement les deux parties dans deux JPanel séparés. (genre en les mettant dans un JSplitPane).
    Je préfrèrerais utiliser cette solution en dernier recours car elle risque de me pose des problèmes par ailleurs.

    Citation Envoyé par sinok Voir le message
    Puis de faire que sur ton JPanel de droite, le dernier champ soit en fill Horizontal, avec un weightx approprié
    Justement qu'est ce un weightx approprié car dans les tutoriels et les divers aide c'est pas très explicite.

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

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765

  5. #5
    Membre émérite
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 143
    Billets dans le blog
    5
    Par défaut
    Oui je connais bien ce tutoriel et il m'a bien aidé mais je dois avouer qu'il n'indique pas de règle précise ni ne décrit exactement comment fonctionne ces propriétés. L'auteur en convient lui même je cite:
    Ces deux propriétés sont très subtiles et, mal utilisées, peuvent provoquer des désastres au niveau de l'interface que nous développons.

  6. #6
    Membre émérite
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 143
    Billets dans le blog
    5
    Par défaut
    Bon après une relecture plus attentive du tutoriel. J'ai partiellement résolu mon problème. J'ai réussi à supprimer l'espace entre mon arbre et les autres composant de la colonne de droite en mettant le weightx de tous les éléments de chaque ligne à 0 sauf le dernier qui est mis à 1.
    Par contre en fonction de ce qui est sélectionné dans l'arbre, j'ai certains éléments de la colonne de droite qui ne sont pas affiché. Dans certain cas il y en a même aucun. Du coups dans ce cas là mon arbre se retrouve au milieu du panel au lieu d'être à gauche. Est il possible de récupérer le GridBagConstraints à partir du JTree de le modifier pour que mon arbre reprenne sa position à gauche.

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

Discussions similaires

  1. Problème de placement avec balise "object"
    Par qwertz1 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 0
    Dernier message: 10/11/2012, 10h45
  2. Problèmes d'agencement avec GridBagLayout
    Par -The_Reaper- dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 02/08/2010, 14h17
  3. placement d'objet graphique avec un gridbaglayout
    Par illegalsene dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 09/08/2006, 14h36
  4. [Swing] Problème avec les GridBagLayout
    Par CrazySeb dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 28/04/2006, 15h47
  5. problème de placement avec IE
    Par Invité dans le forum Langage
    Réponses: 2
    Dernier message: 20/12/2005, 00h46

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