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 :

Problème de GridBagLayout


Sujet :

AWT/Swing Java

  1. #1
    Membre expérimenté
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 076
    Points : 1 521
    Points
    1 521
    Billets dans le blog
    5
    Par défaut Problème de GridBagLayout
    Salut à tous

    Je commence à m'arracher les cheveux avec un GridBagLayout
    Voilà le problème:
    Dans un JPanel j'affiche 2 lignes de led avec un label comme ceci

    Le problème c'est que j'ai un gros trou à la seconde ligne entre la première led et les autres.
    J'ai fouillé un peu partout dans les tutoriels et les exemples de codes et vu ce que j'ai programmé (cf code si dessous) je devrais avoir ceci


    Voici le 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
    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
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
     
        public void Design2() {
     
    	setLayout(new GridBagLayout());
    	setBorder(BorderFactory.createRaisedBevelBorder());
     
    	for (int indx = 0; indx < lbl.length; indx++) {
     
    	    // Led les alarmes
     
    	    m_LedAlarme[indx] = new Led();
    	    m_LedAlarme[indx].setLedColor(LedColor.RED);
     
    	    org.jdesktop.layout.GroupLayout ledLayout = new org.jdesktop.layout.GroupLayout(
    		    m_LedAlarme[indx]);
    	    ledLayout.setHorizontalGroup(ledLayout.createParallelGroup(
    		    org.jdesktop.layout.GroupLayout.LEADING).add(0, 48,
    		    Short.MAX_VALUE));
    	    ledLayout.setVerticalGroup(ledLayout.createParallelGroup(
    		    org.jdesktop.layout.GroupLayout.LEADING).add(0, 48,
    		    Short.MAX_VALUE));
    	    m_LedAlarme[indx].setLayout(ledLayout);
    	    m_LedAlarme[indx].setMinimumSize(new Dimension(48, 48));
     
    	    GridBagConstraints gbcS = new GridBagConstraints();
    	    gbcS.gridx = 2 * indx;
    	    gbcS.gridy = 1;
    	    gbcS.gridwidth = 1;
    	    gbcS.gridheight = 1;
    	    gbcS.anchor = GridBagConstraints.LINE_END;
    	    gbcS.fill = GridBagConstraints.NONE;
    	    gbcS.insets = new Insets(5, 5, 5, 5);
    	    gbcS.weightx = 0.0;
    	    gbcS.weighty = 0.0;
    	    add(m_LedAlarme[indx], gbcS);
     
    	    // Label contenant le nom du server
    	    m_Label[indx] = new JLabel(lbl[indx]);
    	    GridBagConstraints gbcL = new GridBagConstraints();
    	    gbcL.gridx = 2 * indx + 1;
    	    gbcL.gridy = 1;
    	    gbcL.gridwidth = 1;
    	    gbcL.gridheight = 1;
    	    gbcL.anchor = GridBagConstraints.LINE_START;
    	    gbcL.fill = GridBagConstraints.NONE;
    	    gbcL.insets = new Insets(5, 5, 5, 5);
    	    gbcL.weightx = 0.0;
    	    gbcL.weighty = 0.0;
    	    add(m_Label[indx], gbcL);
    	}
     
    	GridBagConstraints gbcLt = new GridBagConstraints();
    	gbcLt.gridx = 2 * lbl.length + 1;
    	gbcLt.gridy = 1;
    	gbcLt.gridwidth = 1;
    	gbcLt.gridheight = 1;
    	gbcLt.anchor = GridBagConstraints.CENTER;
    	gbcLt.fill = GridBagConstraints.NONE;
    	gbcLt.insets = new Insets(5, 5, 5, 5);
    	gbcLt.weightx = 1.0;
    	gbcLt.weighty = 0.0;
    	add(new JLabel(""), gbcLt);
     
    	JLabel Titre = new JLabel("Stabilisation");
    	GridBagConstraints gbcT = new GridBagConstraints();
    	gbcT.gridx = 1;
    	gbcT.gridy = 0;
    	gbcT.gridwidth = 1;
    	gbcT.gridheight = 1;
    	gbcT.anchor = GridBagConstraints.LINE_END;
    	gbcT.fill = GridBagConstraints.NONE;
    	gbcT.insets = new Insets(5, 5, 5, 5);
    	gbcT.weightx = 0.0;
    	gbcT.weighty = 0.0;
    	add(Titre, gbcT);
     
    	m_LedStabON = new Led();
    	m_LedStabON.setLedColor(LedColor.GREEN);
    	org.jdesktop.layout.GroupLayout ledLayout = new org.jdesktop.layout.GroupLayout(
    		m_LedStabON);
    	ledLayout.setHorizontalGroup(ledLayout.createParallelGroup(
    		org.jdesktop.layout.GroupLayout.LEADING).add(0, 48,
    		Short.MAX_VALUE));
    	ledLayout.setVerticalGroup(ledLayout.createParallelGroup(
    		org.jdesktop.layout.GroupLayout.LEADING).add(0, 48,
    		Short.MAX_VALUE));
    	m_LedStabON.setLayout(ledLayout);
    	m_LedStabON.setMinimumSize(new Dimension(48, 48));
    	GridBagConstraints gbcS = new GridBagConstraints();
    	gbcS.gridx = 2;
    	gbcS.gridy = 0;
    	gbcS.gridwidth = 1;
    	gbcS.gridheight = 1;
    	gbcS.anchor = GridBagConstraints.LINE_START;
    	gbcS.fill = GridBagConstraints.NONE;
    	gbcS.insets = new Insets(5, 5, 5, 5);
    	gbcS.weightx = 1.0;
    	gbcS.weighty = 0.0;
    	add(m_LedStabON, gbcS);
     
        }
    Si quelqu'un a une idée
    Images attachées Images attachées   
    Il y a des jours où j'éprouve une haine profonde envers microsoft et Apple c'est pas mieux
    Mon modeste site et mes modestes oeuvres sont
    Rémi

  2. #2
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Sinon, savais tu que l'on peut mettre à la fois une icône et du texte dans un JLabel.
    Donc, au lieu de 8 labels, tu n'en as besoin que de 4

    Pour la led verte, utilise un gridwidth à 3 au lieu de 1 vu qu'elle est seule sur sa ligne. Gridx à 1
    Pour les leds rouges, utilise un gridwidth à 1, tous sur la même ligne, gridx à 1,2,3
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  3. #3
    Membre expérimenté
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 076
    Points : 1 521
    Points
    1 521
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par sinok Voir le message
    Sinon, savais tu que l'on peut mettre à la fois une icône et du texte dans un JLabel.
    Donc, au lieu de 8 labels, tu n'en as besoin que de 4
    Ce n'est pas des icones c'est des composant graphique à part entière et je ne sais pas si je peux le mettre dans les JLabel
    Citation Envoyé par sinok Voir le message
    Pour la led verte, utilise un gridwidth à 3 au lieu de 1 vu qu'elle est seule sur sa ligne. Gridx à 1
    Pour les leds rouges, utilise un gridwidth à 1, tous sur la même ligne, gridx à 1,2,3
    Tu veux dire le weightx au lieu de gridthwith car il est déjà à 1 pour tous les éléments. J'ai modifié le code comme ça pour les labels des led rouges et j'ai mis à 1 le weightx des leds.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    gbcL.weightx = 1.0;
    if (indx==lbl.length-1)
      gbcL.weightx = 10.0;
    gbcL.weighty = 0.0;
    add(m_Label[indx], gbcL);
    Voilà ce que ça donne


    C'est mieux
    Images attachées Images attachées  
    Il y a des jours où j'éprouve une haine profonde envers microsoft et Apple c'est pas mieux
    Mon modeste site et mes modestes oeuvres sont
    Rémi

Discussions similaires

  1. 2 problèmes : Thread & GridBagLayout
    Par M4veR1K dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 01/07/2009, 09h13
  2. Problème avec GridBagLayout
    Par alexis0587 dans le forum Agents de placement/Fenêtres
    Réponses: 6
    Dernier message: 25/03/2009, 22h57
  3. problème de GridBagLayout
    Par Invité1 dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 19/02/2008, 17h13
  4. Problème de GridBagLayout (disposition jscrollbar)
    Par akiri dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 17/11/2007, 11h02
  5. Problème avec GridBagLayout dans JPanel
    Par caneman dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 19/12/2006, 22h32

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