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 :

Centrer un GridLayout dans une JFrame


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre du Club
    Inscrit en
    Février 2008
    Messages
    190
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 190
    Points : 53
    Points
    53
    Par défaut Centrer un GridLayout dans une JFrame
    Bonsoir,

    Voilà, j'ai un setLayout (GridLayout) positionné dans une JFrame mais je me retrouve avec des espaces entre ce qu'il y'a dans le Grid et le bord de la JFrame. Comme le contenu peut-être différent au niveau de la taille, je pense que la meilleure solution serais de centrer à la fois horizontalement et verticalement ce GridLayout.

    Quelqu'un aurait-il une idée ?

    Merci à vous.

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Place un BorderLayout sur ton contentPane.
    Ensuite dans la partie Center, tu places ton panel avec ton GridLayout.

  3. #3
    Membre du Club
    Inscrit en
    Février 2008
    Messages
    190
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 190
    Points : 53
    Points
    53
    Par défaut
    Citation Envoyé par fr1man Voir le message
    Place un BorderLayout sur ton contentPane.
    Ensuite dans la partie Center, tu places ton panel avec ton GridLayout.
    Merci pour ta réponse. Bon je débute alors je pense que tu va me corriger mais je viens de tester et cela ne fonctionne pas. Je met le code ci-dessous car je pense que je ne fais pas comme il faudrait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    		Container contenu = getContentPane();
     
    		contenu.setLayout(new BorderLayout ());
     
    		contenu.setLayout(new GridLayout(nb_lines, nb_columns, 1, 1));
    Mon GridLayout n'est toujours pas centré dans ma fenêtre. Mais dans ce cas j'imagine que mon GridLayout 'écrase' le BorderLayout ?

    Faut-il créer un JPanel où tu place le BorderLayout et par là suite tu ajoutes le GridPanel ?


    EDIT :
    Bon je viens d'essayer ça, y'a du mieux mais ça ne fonctionne toujours pas. Non seulement ma grille n'est toujours pas centré mais en plus les couleurs sont inversés car dans le GridLayout j'ajoute des panels de couleur DarkGray. Mais au lieu de cela ce sont les espaces pour créer la grille qui sont en DarkGray et en gris 'normal' les cases... Enfin je sais pas si c'est clair pour vous
    En gros voici une partie du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    		Container contenu = getContentPane();
     
    		JPanel base = new JPanel();
    		base.setLayout(new BorderLayout());
    		contenu.add(base);
     
    		JPanel grid = new JPanel();
    		grid.setLayout(new GridLayout(nb_lines, nb_columns, 1, 1));
     
    		base.add(grid, BorderLayout.CENTER);

  4. #4
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Et quelque chose comme ça ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Container contenu = getContentPane();
    contenu.setLayout(new BorderLayout());
    *
    JPanel grid = new JPanel();
    grid.setLayout(new GridLayout(nb_lines, nb_columns, 1, 1));
    *
    contenu.add(grid, BorderLayout.CENTER);

  5. #5
    Membre du Club
    Inscrit en
    Février 2008
    Messages
    190
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 190
    Points : 53
    Points
    53
    Par défaut
    Citation Envoyé par fr1man Voir le message
    Et quelque chose comme ça ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Container contenu = getContentPane();
    contenu.setLayout(new BorderLayout());
    *
    JPanel grid = new JPanel();
    grid.setLayout(new GridLayout(nb_lines, nb_columns, 1, 1));
    *
    contenu.add(grid, BorderLayout.CENTER);
    Effectivement, ça à l'air plus logique. Je pense que je n'attribue pas au bon endroit les panels pour remplir ma grille, voici mon code :

    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
    		Container contenu = getContentPane();
    		contenu.setLayout(new BorderLayout());
     
    		JPanel grid = new JPanel();
    		grid.setLayout(new GridLayout(nb_lines, nb_columns, 1, 1));
     
    		contenu.add(grid, BorderLayout.CENTER);
     
    		int total = nb_lines * nb_columns;
    		int y = 0;
     
    		do {
    			JPanel square = new JPanel();
    			grid.setBackground(Color.darkGray);
    			grid.add(square);
    			y++;
    		} while(y < total);
    Mais j'ai toujours le même problème. Merci pour ta réponse.

  6. #6
    Membre du Club
    Inscrit en
    Février 2008
    Messages
    190
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 190
    Points : 53
    Points
    53
    Par défaut
    Bon voilà, c'est bon, une petite erreur sur le code. J'ai une bonne répartition de mes Panels dans le Grid mais le Grid n'est toujours pas correctement aligné, je remet le code modifié :

    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
     
    		Container contenu = getContentPane();
    		contenu.setLayout(new BorderLayout());
     
            JPanel grid = new JPanel();
            grid.setLayout(new GridLayout(nb_lines, nb_columns, 1, 1));
     
     
    		contenu.add(grid, BorderLayout.CENTER);
    		int total = nb_lines * nb_columns;
    		int y = 0;
     
    		do {
    			JPanel square = new JPanel();
    			square.setBackground(Color.darkGray);
    			grid.add(square);
    			y++;
    		} while(y < total);
    Merci de votre aide...

Discussions similaires

  1. Centrer un élément dans une JFrame
    Par Pulsar360 dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 06/05/2013, 16h32
  2. Centrer un gridLayout dans une fenetre plein ecran
    Par jm49 dans le forum SWT/JFace
    Réponses: 2
    Dernier message: 19/03/2009, 14h29
  3. Gestion de menu, JPanels dans une JFrame
    Par Doc.Fusion dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 03/12/2004, 18h27
  4. [JFrame] affichage de component et d'image dans une JFrame
    Par Joeleclems dans le forum Agents de placement/Fenêtres
    Réponses: 8
    Dernier message: 08/10/2004, 16h17
  5. Centrer le texte dans une TStringGrid
    Par Rodrigue dans le forum C++Builder
    Réponses: 2
    Dernier message: 10/06/2004, 11h01

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