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 :

[Swing] probleme de GridBagLayout


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre régulier Avatar de calypso
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 102
    Points : 100
    Points
    100
    Par défaut [Swing] probleme de GridBagLayout
    Bonjour,

    Je cherche a construire une fenetre de ce type:

    ...._______________________________________________
    ...|.............................................................................................................|
    ...|................................................"Nord".................................................|
    ...|_______________________________________________|
    ...|.....................|.......................................................................................|
    ...|.....................|.......................................................................................|
    ...|.....................|.......................................................................................|
    ...|....."West"....|........................."Center"...............................................|
    ...|.....................|.......................................................................................|
    ...|.....................|.......................................................................................|
    ...|.....................|.......................................................................................|
    ...|.....................|.......................................................................................|
    ...|.....................|_____________________________________ |
    ...|_________|____________"South"____________________|

    Qui ressemble a un borderLayout mais pas exactement. Je l'ai decoupe de la maniere suivante en grille (13*5) pour conserver les rapports de taille:


    ...._______________________________________________
    ...|_________|_________|_________|_________|_________|
    ...|_________|_________|_________|_________|_________|
    ...|_________|_________|_________|_________|_________|
    ...|_________|_________|_________|_________|_________|
    ...|_________|_________|_________|_________|_________|
    ...|_________|_________|_________|_________|_________|
    ...|_________|_________|_________|_________|_________|
    ...|_________|_________|_________|_________|_________|
    ...|_________|_________|_________|_________|_________|
    ...|_________|_________|_________|_________|_________|
    ...|_________|_________|_________|_________|_________|
    ...|_________|_________|_________|_________|_________|


    J'ai donc ecrit le code suivant:
    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
    import javax.swing.*;
    import java.awt.*;
    public class Test{
     
     
       public static void main(String[] args)
       {
          JFrame frame = new JFrame();
          GridBagLayout gb = new GridBagLayout();
          JPanel contentPane = new JPanel(gb);
     
          GridBagConstraints gbc = new GridBagConstraints();
     
          gbc.fill= GridBagConstraints.BOTH;
     
          JPanel north = new JPanel();
          north.setBackground(Color.BLUE);
          north.add(new JLabel("north"));
     
          gbc.weightx = 1;
          gbc.weighty = 1;
          gbc.gridx= 1;
          gbc.gridy = 1;
          gbc.gridwidth = 5;
          gbc.gridheight = 3;
          contentPane.add(north, gbc);
     
          JPanel west = new JPanel();
          west.setBackground(Color.GREEN);
          west.add(new JLabel("west"));
     
          gbc.gridx= 1;
          gbc.gridy = 4;
          gbc.gridwidth = 1;
          gbc.gridheight = 10;
          contentPane.add(west, gbc);
     
          JPanel center = new JPanel();
          center.setBackground(Color.RED);
          center.add(new JLabel("center"));
          gbc.gridx= 2;
          gbc.gridy = 4;
          gbc.gridwidth = 4;
          gbc.gridheight = 9;
          contentPane.add(center, gbc);
     
          JPanel south = new JPanel();
          south.setBackground(Color.GRAY);
          south.add(new JLabel("south"));
     
          gbc.gridx= 2;
          gbc.gridy = 13;
          gbc.gridwidth = 4;
          gbc.gridheight = 1;
          contentPane.add(south, gbc);
     
          frame.setContentPane(contentPane);
          frame.setSize(300,400);
          frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          frame.show();
       }
    }
    [ce code est directement executable dans un fichier Test.java, si vous voulez voir ce que ca donne..]

    Mais je n'obtiens pas le rapport de taille que je desirais. En effet, le centre a la meme hauteur que le sud, et il semble que cette taille depend du contenu des panels. Comment faire pour forcer cette disposition?

    calypso

  2. #2
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    rajoute au debut :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    gbc.weightx=1; 
    gbc.weighty=1;
    Je ne suis pas sure mais ca peut peut etre marcher.
    Ces lignes obligent l'objet a prendre le maximum de place qu'il peut !

  3. #3
    Membre régulier Avatar de calypso
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 102
    Points : 100
    Points
    100
    Par défaut
    merci, ca augmente la taille des composants pour prendre toute la fenetre mais ca ne fait pas ce que je veux

  4. #4
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Ah oui ! Je vois ce que tu veux faire !

    Je viens de voir un truc dans la doc qui se fait sur le layout, ce sont des variables qui fixent la hauteur et la largeur minimale des cellules

    essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    gb.rowHeights=50;
    gb.columnWidths=50;
    Enfin je crois que c'est ca !
    Peut etre il faudra mettre des {} autour des nombres car ce sont des tableaux de int !

  5. #5
    Membre régulier Avatar de calypso
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 102
    Points : 100
    Points
    100
    Par défaut
    C'est mieux. En tout cas ca me permet d'avancer!

    merci

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

Discussions similaires

  1. [SWING] Probleme actualisation Jlist
    Par MaxiMax dans le forum Composants
    Réponses: 1
    Dernier message: 24/01/2006, 10h21
  2. [Swing] Probleme redimentionnement GridLayout
    Par Zapan dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 18/12/2005, 21h03
  3. [debutant][swing] Probleme avec un Jpanel
    Par JeanMoul dans le forum Débuter
    Réponses: 6
    Dernier message: 27/08/2005, 19h07
  4. [Swing]probleme pour changer de JPanel
    Par mereyj dans le forum Composants
    Réponses: 8
    Dernier message: 19/06/2005, 12h55
  5. [swing] probleme de memoire
    Par leBigouden dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 23/05/2003, 14h19

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