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

Interfaces Graphiques en Java Discussion :

Problème avec GridLayout


Sujet :

Interfaces Graphiques en Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    décembre 2009
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2009
    Messages : 256
    Points : 147
    Points
    147
    Par défaut Problème avec GridLayout
    Bonjour,

    Ci-dessous un programme de test. Je définis un panneau avec un Gridlayout de 10 lignes et 2 colonnes. Lorsque j'exécute ce programme j'obtiens bien 10 lignes, mais 4 colonnes.
    Je ne comprends pas comment cela se peut.
    Merci d'avance
    Gérard

    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
     
    package test;
    import javax.swing.JDialog;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JCheckBox ;
    import java.awt.GridLayout ;
     
    	class TestGridLayout  extends JDialog 
    	{
    		private static final long serialVersionUID = 1L;
     
    		public TestGridLayout(JFrame ow)
    		{
    		   super(ow, true);
    		}
     
    		private void créerBoites()
    		{
    			getContentPane().setLayout(null);
    			this.setSize(800,456);	
    			JPanel  MonPanneau = new JPanel() ;
    		     MonPanneau.setBounds(42, 69, 700, 262);
    		    GridLayout layout = new  GridLayout(10,2);
    		    MonPanneau.setLayout(layout);
    		    int j=0;
    		    for (int i=0; i< 18 ;i++)   	
    		    { 	
    			    ++j;
    			    JCheckBox chk = new  JCheckBox((String) "Ligne ajoutée = " + j);  
    			    MonPanneau.add(chk);
    			    JLabel blanc = new JLabel("Num = " + j); 
    			    MonPanneau.add(blanc);
    		    }
     
    		   getContentPane().add(MonPanneau);
    		   this.setLocationRelativeTo(null);
    		   setVisible(true);
    		}
     
    		public static void main(String[] args) 
    		{
    			new TestGridLayout(new JFrame()).créerBoites();
    		}
     
    }

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur en génie logiciel
    Inscrit en
    juin 2012
    Messages
    595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur en génie logiciel
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : juin 2012
    Messages : 595
    Points : 1 514
    Points
    1 514
    Par défaut
    c'est ce que j'obtiens

    Nom : gridback-layout.jpg
Affichages : 33
Taille : 44,7 Ko

    10 lignes et 2 colonnes
    or dans ta boucle tu mentionnes 0 à < 18.... et tu ajoutes 2 composants a chaque passage...

    remplace ca par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     for (int i=0; i< 10 ;i++)
    et tu ca donneras

    Nom : gridback-layout2.jpg
Affichages : 36
Taille : 30,3 Ko

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    décembre 2009
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2009
    Messages : 256
    Points : 147
    Points
    147
    Par défaut
    Bien sûr, je suis désolé de poser une question si stupide. En fait, pour moi, l'incrément représentait le nombre d'items et non pas le nombres de lignes.
    je suis désolé d'avoir posé une question si stupide.

    Merci beaucoup

    Gérard

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingénieur en génie logiciel
    Inscrit en
    juin 2012
    Messages
    595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur en génie logiciel
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : juin 2012
    Messages : 595
    Points : 1 514
    Points
    1 514
    Par défaut
    Citation Envoyé par GérardMartinelli Voir le message
    Bien sûr, je suis désolé de poser une question si stupide. En fait, pour moi, l'incrément représentait le nombre d'items et non pas le nombres de lignes.
    je suis désolé d'avoir posé une question si stupide.

    Merci beaucoup

    Gérard
    si tu comptes fait beaucoup d'interface en swing, je te conseille de jeter un oeil sur le miglayout... très facile d'accès
    https://www.miglayout.com/

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    décembre 2009
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2009
    Messages : 256
    Points : 147
    Points
    147
    Par défaut
    A la réflexion, je me suis demandé si il n'y avait pas une faiblesse de Java dans la façon de gérer les GridLayouts. Car c'est la première fois que j'utilisais les grilles

    Si j'ai bien compris, le nombre maximum de composants (check boxes dans mon cas) est le produit du nombre de lignes par le nombre de colonnes. Soit 20 dans mon exemple. Or j'ai, par erreur, ajouté 36 composants (18x 2 dans mon exemple).
    On se serait attendu à ce que que Java lève une exception du type :

    GridLayout Exception : Try to add more components than the number of defined Grid cells.

    Si j'avais obtenu ce type de message, j'aurais compris mon erreur.

    Qu'en penses-tu ? Or quoi qu'il en soit merci encore pour ton support.

    Gérard

  6. #6
    Membre expérimenté
    Homme Profil pro
    Ingénieur en génie logiciel
    Inscrit en
    juin 2012
    Messages
    595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur en génie logiciel
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : juin 2012
    Messages : 595
    Points : 1 514
    Points
    1 514
    Par défaut
    Citation Envoyé par GérardMartinelli Voir le message
    A la réflexion, je me suis demandé si il n'y avait pas une faiblesse de Java dans la façon de gérer les GridLayouts. Car c'est la première fois que j'utilisais les grilles

    Si j'ai bien compris, le nombre maximum de composants (check boxes dans mon cas) est le produit du nombre de lignes par le nombre de colonnes. Soit 20 dans mon exemple. Or j'ai, par erreur, ajouté 36 composants (18x 2 dans mon exemple).
    On se serait attendu à ce que que Java lève une exception du type :

    GridLayout Exception : Try to add more components than the number of defined Grid cells.

    Si j'avais obtenu ce type de message, j'aurais compris mon erreur.

    Qu'en penses-tu ? Or quoi qu'il en soit merci encore pour ton support.

    Gérard
    disons que débuter en swing est pas évident

    j'en ai pas mal fait à la main, mais j'ai souvent utilisé le drag and drop par certain outils comme netbeans:


    et ensuite j'ai découvert le miglayout qui est très simple et permet de faire tout ce que les autres layouts font

Discussions similaires

  1. Création Grille avec gridLayout --> Problème de rafraichissement ?
    Par july4474 dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 10/03/2010, 17h41
  2. Problème avec GridLayout
    Par d_hazem dans le forum Agents de placement/Fenêtres
    Réponses: 22
    Dernier message: 06/06/2008, 15h33
  3. problème avec GridLayout
    Par *alexandre* dans le forum SWT/JFace
    Réponses: 2
    Dernier message: 16/04/2008, 13h52
  4. Problème avec le GridLayout
    Par mister3957 dans le forum Agents de placement/Fenêtres
    Réponses: 7
    Dernier message: 01/08/2005, 17h59
  5. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 17h10

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