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 :

[Swing]Gestion du positionnement avec GridBagLayout


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de yoshï
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 206
    Par défaut [Swing]Gestion du positionnement avec GridBagLayout
    Bonjour,
    je suis débutant sous java et je galère pour dessiner une interface graphique digne de ce nom ...Le seul Layout Manager que j'ai trouvé et qui me parait assez souple pour organiser convenablement mon interface est le GridBagLayout.Mais j'ai quelques problèmes pour l'utiliser, j'ai un applet dans lequel je veux ajouter un label texte en haut à gauche.Mais voila quand j'ajoute le label à la grille en position (0,0) il apparait au centre de mon applet.Si j'ajoute un bouton en (1,0) le bouton apparait bien en dessous du label mais toujours au milieu de l'applet...
    c'est comme si l'origine de la grille se trouvait au milieu de l'applet


    Avez vous une solution?
    merci d'avance

  2. #2
    Membre éprouvé
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Par défaut
    Eh bien le probleme c'est que tu n'as que 2 elements au sein de ton applet si je ne me trompe pas, donc ils vont prendre l'espace qu'ils disposent, dans ton cas, toute l'applet puisqu'il n'y a qu'eux.
    Fais voir le code où tu utilises GridBagLayout s'il te plait....

  3. #3
    Membre confirmé Avatar de yoshï
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 206
    Par défaut
    ils vont prendre l'espace qu'ils disposent, dans ton cas, toute l'applet
    Justement ils ne prennent pas tous l'espace puisque toute la partie haute de l'applet est vierge (ils sont au milieu).Je voudrais avoir le label texte en haut à gauche et il apparait au centre...

    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
     
             //création de la zone titre
            JLabel titre = new JLabel(" ALGORITHME DU BANQUIER");
     
           //Création d'inserts (objets d'espacement)
            Insets cellInsets = new Insets(2, 2, 2, 2);
            Insets cellInsets2 = new Insets(2, 2, 12, 2);
     
     
            /*****************************
             
                    Définition des styles de cellule
      
             ******************************/
     
     
            // Créer les styles de cellule
            CellStyle titleStyle = new CellStyle(1.0, 0.0,
                GridBagConstraints.FIRST_LINE_START,           GridBagConstraints.BOTH,
                new Insets(12, 2, 2, 2), 2, 0);
     
            /***********************
            
            Ajout des composants
                    
            *********************/
     
     
            XGridBag g = new XGridBag(contenu);
            // ligne 0
            g.add(titre,titleStyle, 0, 0, 1, 1);
    à noter que je fais des tests à l'aide des algo publiques dispo à l'adresse (vous y trouverez les classes CellStyle et XGridBag dont j'utilise les méthodes) :
    http://louis.cova.neuf.fr/blocs-notes/page11.html

  4. #4
    Membre éprouvé
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Par défaut
    A ok moi je ne l'utilise pas comme ça. Dans ton cas, je ne peux pas t'aidé.
    Mais je vais te montré comment moi je fais, ça peut t'inspiré ^^.
    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
     
    //Créer les objets nécessaire
                    JPanel pane = new JPanel();
    		GridBagLayout gridbag = new GridBagLayout();
    		GridBagConstraints constraints = new GridBagConstraints();
    		pane.setLayout(gridbag);
     
    		buildConstraints(constraints, 0, 0, 1, 1, 1, 1);
    //Place l'élément a 0, 0 ect
    		constraints.fill = GridBagConstraints.HORIZONTAL;
    //Dis qu'il occupe la cellule dans la largeur
    		constraints.anchor = GridBagConstraints.CENTER;
    //il est au centre de la cellule
    		gridbag.setConstraints(elementUI, constraints);
    //PLace l'element selon les criteres precedents
    		pane.add(elementUI);
    //Ajoute l'element au panel
    Voila. Bonne chance.

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

Discussions similaires

  1. Comment positionner un composant avec GridBagLayout ?
    Par fleure dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 22/04/2009, 13h13
  2. gestion des icones avec Swing
    Par laurentapologic dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 25/04/2008, 07h45
  3. Réponses: 2
    Dernier message: 04/12/2006, 20h40
  4. probleme de gestion de clients avec des sockets....
    Par ludvo dans le forum Réseau
    Réponses: 6
    Dernier message: 25/09/2003, 12h37
  5. [TFrame] Problème de gestion du OnMouseDown avec une Frame
    Par xherault dans le forum Composants VCL
    Réponses: 5
    Dernier message: 23/05/2003, 15h35

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