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 avec le GridLayout


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 824
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 824
    Points : 1 544
    Points
    1 544
    Par défaut Problème avec le GridLayout
    Bonjour à tous,

    Alors voilà, j'ai 4 composants à afficher dans un panneau (deux en haut, deux en bas) et je les veux dans des céllulles égales au niveau de la taille.

    Alors j'ai pensé au GridLayout... et ça marche. Seulement, j'aimerai que mon GridLayout prenne toute la place de son container parent...

    J'ai fait ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public class paneau principal extends JPanel
    {
        setLayout(new GridLayout(2,2));
        add(new JLabel("label1));
        add(new JLabel("label2));
        add(new JLabel("label3));
        add(new JLabel("label4));
    }
    Et voilà, ils prennent la place minimal qu'ils peuvent prendre, et je voudrai qu'ils prennen la place maximal qu'ils peuvent prendre sur la JPanel...

    C'est possible ça?

    Merci beaucoup

    A bientôt
    "Heureusement qu'il y avait mon nez, sinon je l'aurais pris en pleine gueule" Walter Spanghero

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 390
    Points : 432
    Points
    432
    Par défaut
    Si tu veux gérer le redimensionnement des composant dans le layout en fonction de la place, il faut que tu utilises un GridBagLayout
    Pour 4 cellules c pas bien mechant à faire
    Mess with the best, die like the rest!

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 390
    Points : 432
    Points
    432
    Par défaut
    Comme je c pas trop quoi faire, je te le donne si tu veux :

    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
    setLayout(new GridBagLayout());
    GridBagConstraints c = new GridBagConstraints(0,0,1,1,1,1,
        GridBagConstraints.CENTER,GridBagConstraints.BOTH,
        new Insets(0,0,0,0),0,0);
     
     
    add(new JLabel("label1"),c);
     
    c.gridx = GridBagConstraints.RELATIVE;
    c.gridwidth = GridBagConstraints.REMAINDER;
    add(new JLabel("label2"),c);
     
    c.gridx = 0;
    c.gridy = 1;
    c.gridwidth = 1;
    add(new JLabel("label3"),c);
     
    c.gridx = GridBagConstraints.RELATIVE;
    c.gridwidth = GridBagConstraints.REMAINDER;
    add(new JLabel("label 4"),c);
    Mess with the best, die like the rest!

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 824
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 824
    Points : 1 544
    Points
    1 544
    Par défaut
    ben euhhh... c't'a dire que j'ai pas cherché à comprendre, j'ai fait copier coller, et ça fait toujours le même...

    J'vais regarder dans la doc...
    "Heureusement qu'il y avait mon nez, sinon je l'aurais pris en pleine gueule" Walter Spanghero

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 390
    Points : 432
    Points
    432
    Par défaut
    Dans ce cas ca doit venir du composant au dessus.
    Si tu ajoute tes JLabel dans un JPanel, il faut s'assurer que le JPanel prenne toute la place.
    Voila un exemple ou ca marche comme il faut:

    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
    public static void main(java.lang.String[] args) {
    		JFrame frame = new JFrame("Test");
    		frame.getContentPane().setLayout(new GridBagLayout());
    		GridBagConstraints c = new GridBagConstraints(0,0,1,1,1,1,
    				GridBagConstraints.CENTER,GridBagConstraints.BOTH,
    				new Insets(0,0,0,0),0,0);
     
     
    		frame.getContentPane().add(new JLabel("label1"),c);
     
    		c.gridx = GridBagConstraints.RELATIVE;
    		c.gridwidth = GridBagConstraints.REMAINDER;
    		frame.getContentPane().add(new JLabel("label2"),c);
     
    		c.gridx = 0;
    		c.gridy = 1;
    		c.gridwidth = 1;
    		frame.getContentPane().add(new JLabel("label3"),c);
     
    		c.gridx = GridBagConstraints.RELATIVE;
    		c.gridwidth = GridBagConstraints.REMAINDER;
    		frame.getContentPane().add(new JLabel("label 4"),c);
     
    		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		frame.setSize(200,200);
    		frame.setVisible(true);
    	}
    Mess with the best, die like the rest!

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 824
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 824
    Points : 1 544
    Points
    1 544
    Par défaut
    bah voilà je te met le code de ce que j'ai fait, parceque je ne vois pas ou ça coince...

    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
    public class FavoritePreferencesPanel extends JPanel
    {
    	private static final long serialVersionUID = 1L;
    	private ClientList _clientList;
    	private FavoriteServersPanel _favoriteServersPanel;
    	private FavoriteChannelsPanel _favoriteChannelsPanel;
     
     
    	public FavoritePreferencesPanel(ClientList clientList)
    	{
    		_clientList = clientList;
    		_favoriteServersPanel = new FavoriteServersPanel(_clientList);
    		_favoriteChannelsPanel = new FavoriteChannelsPanel();
     
    		GridBagLayout gridBagLayout = new GridBagLayout();
    		setLayout(gridBagLayout);
    		GridBagConstraints c = new GridBagConstraints(0,0,1,1,1,1, 
    			    GridBagConstraints.CENTER,GridBagConstraints.BOTH, 
    			    new Insets(0,0,0,0),0,0);
     
    		add(_favoriteServersPanel, c);
     
    		c.gridx = GridBagConstraints.RELATIVE; 
    		c.gridwidth = GridBagConstraints.REMAINDER;
    		add(_favoriteChannelsPanel, c);
     
    		c.gridx = 0; 
    		c.gridy = 1; 
    		c.gridwidth = 1;
    		add(new FavoriteServersPanel(_clientList), c);
     
    		c.gridx = GridBagConstraints.RELATIVE; 
    		c.gridwidth = GridBagConstraints.REMAINDER;
    		add(new FavoriteServersPanel(_clientList), c);
    	}
    En fait je suis en train de faire un client IRC, et en ce moment otu fonctionne, j'ai plus qu'à m'occuper des préférences.
    J'ai une JDialog avec un BorderLayout. Sur la gauche j'ai placé des boutons, sur le centre, une JPanel ou je n'ai rien, au démarrage dedant, avec son Layout par défaut.

    Lorsque l'utilisateur clic sur un bouton dans les préférence, ça fait ça:
    _optionPanel.removeAll();
    _optionPannel.add(FavoritePanel);

    Là je suis en train de faire la FavoritePanel, le code est au dessus. Pour le moment il n'y a que les serveurs favori, et les salon favori sur le serveur sélectionné. Les deux autres composant son des zone de serveurs favori, c'était juste histoire de combler pour voire le rendu.

    Mais ça ne fonctionne toujours pas... ça affiche les 4 panneaux, tous de la même taille, mais compactés pour qu'ils prennent un minimum de place, et centré au milieu horizontalement, et en haut verticalement...

    Tu vois ou est le problème?

    Merci beaucoup en tout cas
    "Heureusement qu'il y avait mon nez, sinon je l'aurais pris en pleine gueule" Walter Spanghero

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 390
    Points : 432
    Points
    432
    Par défaut
    essai ca au moment d'ajouter ton FavoritePanel, parce que tu l'ajoutes sans tenir compte de la contrainte du layout :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    _optionPanel.add(FavoritePanel,BorderLayout.CENTER);
    Avec un peu de chance ca devrait marcher
    Mess with the best, die like the rest!

  8. #8
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 824
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 824
    Points : 1 544
    Points
    1 544
    Par défaut
    Ha oui effectivement ça marche

    Fallait mettre le optionsPanel avec un BorderLayout et puis ajouter les panneau avec BorderLayout.CENTER...

    Merci beaucoup
    "Heureusement qu'il y avait mon nez, sinon je l'aurais pris en pleine gueule" Walter Spanghero

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

Discussions similaires

  1. Problème avec GridLayout
    Par d_hazem dans le forum Agents de placement/Fenêtres
    Réponses: 22
    Dernier message: 06/06/2008, 14h33
  2. problème avec GridLayout
    Par *alexandre* dans le forum SWT/JFace
    Réponses: 2
    Dernier message: 16/04/2008, 12h52
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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