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

 Java Discussion :

[GridBagLayout] Comment débuter avec ce layout


Sujet :

Java

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 82
    Points : 55
    Points
    55
    Par défaut [GridBagLayout] Comment débuter avec ce layout
    Bonjour,

    Après avoir lutter pour faire de l'affichage d'image, j'essaye le GridBagLayout... Beurk...

    J'ai lu ce que je pouvais dessus, mais je n'arrive tjs pas à en comprendre le fonctionnement.

    Un petit truc tout simple par exemple. Les paramêtres gridwidth et gridheght ne semble rien faire sur mon prog...

    L'exemple suivant me donne 2 JPanels strictement identique. alors que le Gridwidth est différent pour chacun...
    (a noter que meme en passant les weights en commentaires, ca ne modifie pas la largeur relative de mes JPanels.

    Un grand merci à ceux qui prendront la peine d'éclairer mon obscure lanterne.

    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
     
     
    import java.awt.*;
    import javax.swing.*;
     
     
    public class Test
    {
    	public static void main(String[] args)
    	{
     
    		//Creation Frame
    		Fenetre_principale appli = new Fenetre_principale();
    		appli.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            appli.setVisible(true);
        }
    } 
     
     
     
    class Fenetre_principale extends JFrame {
    	public Fenetre_principale() {
     
    	    setLocation(50,50);
    	    setSize(400,400);
    		GridBagLayout layout = new GridBagLayout();
    		this.setLayout(layout);
     
     
            //Creation Panels & remplissage
    		Panneau_navigation Zone_navigation = new Panneau_navigation();
    		GridBagConstraints c1 = new GridBagConstraints();
    	      c1.gridx = 3;
    	      c1.gridy = 0;
    	      c1.gridwidth = 1;
    	      //c1.gridheight = 2;
    	      c1.anchor = GridBagConstraints.FIRST_LINE_END;
    	      c1.fill = GridBagConstraints.BOTH;
    	      c1.weightx = 1;
    	      c1.weighty = 1;
    	    add(Zone_navigation,c1);
     
     
    		Panneau_image Zone_image = new Panneau_image();
    		GridBagConstraints c2 = new GridBagConstraints();
    	      c2.gridx = 0;
    	      c2.gridy = 0;
    	      c2.gridwidth = 2;
    	      //c2.gridheight = 2;
    	      c2.anchor = GridBagConstraints.CENTER;
    	      c2.fill = GridBagConstraints.BOTH;
    	      c2.weightx = 1;
    	      c2.weighty = 1;
    	    add(Zone_image,c2);
            setVisible(true);
    	}
    }
     
    class Panneau_navigation extends JPanel {
    	public Panneau_navigation(){
    		this.setBackground(Color.red);
    	}
    }
     
     
    class Panneau_image extends JPanel {
     	public Panneau_image (){
    		this.setBackground (Color.BLUE);
    	}
    }


    R

  2. #2
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut
    Regarde la Javadoc : il te manque un gridbag.setConstraints(button, c) :
    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
       //Creation Panels & remplissage 
          Panneau_navigation Zone_navigation = new Panneau_navigation(); 
          GridBagConstraints c1 = new GridBagConstraints(); 
             c1.gridx = 3; 
             c1.gridy = 0; 
             c1.gridwidth = 1; 
             //c1.gridheight = 2; 
             c1.anchor = GridBagConstraints.FIRST_LINE_END; 
             c1.fill = GridBagConstraints.BOTH; 
             c1.weightx = 1; 
             c1.weighty = 1; 
     
    //       add(Zone_navigation,c1); //pas bon ca !!
     
    // C'est comme ça !
           layout.setConstraints(Zone_navigation, c1);
           add(Zone_navigation);
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 82
    Points : 55
    Points
    55
    Par défaut
    c'est pas vrai de c'est pas vrai !!!

    Le setConstrainst n'est pas induit par cette commande ?
    add(Zone_navigation,c1);

    Alors, elle sert just à faire jolie en qque sorte.

    Merci & a bientot pour une autre question stupide.
    Richard

  4. #4
    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
    Je suis désolé de te contreduire Xavlours mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    add(component,constraint);
    marche parfaitement.
    Et ca revient exactement au même que la solution que tu donnes.
    Mess with the best, die like the rest!

  5. #5
    Membre confirmé Avatar de calogerogigante
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    602
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2003
    Messages : 602
    Points : 497
    Points
    497
    Par défaut
    Je profite de ce post pour dire que la méthode de Delannoy pour s'y retrouver dans le GridBagLayout est, selon moi, excellente (même si son livre dans son ensemble ne me plait pas beaucoup !!! )



    Delannoy propose de faire un beau grillage sur papier, et de dessiner ses composants : ensuite, on mets les coordonnées dans des tableaux. Et du coup, on a une belle vue d'ensemble des positions des composants, et c'est très facile à updater, en comptant la position du composant qu'on examine.

    Voici un exemple où je mets quatre JPanels dans un gridBagLayout :

    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
      // quatre panneaux forment le panneau 02 des infos utilisateur:
      JPanel p02_pan1 = new JPanel();  // p02_pan1.setBackground(Color.black );
      JPanel p02_pan2 = new JPanel();  // p02_pan2.setBackground(Color.red   );
      JPanel p02_pan3 = new JPanel();  // p02_pan3.setBackground(Color.blue  );
      JPanel p02_pan4 = new JPanel();  // p02_pan4.setBackground(Color.yellow);
     
      // Position des 4 panneaux formant l'écran 02
      int P02_x[]    = {  0, 1, 1, 1};
      int P02_y[]    = {  0, 0, 4, 7};
      int P02_larg[] = {  1, 4, 4, 4};
      int P02_haut[] = {  8, 4, 3, 1};
      int P02_px[]   = { 15,80, 0,80};
      int P02_py[]   = {100,90, 5, 5};
     
      GridBagLayout      gbl_p02 = new GridBagLayout();
      GridBagConstraints c       = new GridBagConstraints();
      c.fill = c.BOTH;
     
      setLayout( gbl_p02 );
      for(int i=0; i<P02_x.length; i++)
          {
          c.gridx     = P02_x[i];
          c.gridy     = P02_y[i];
          c.gridwidth = P02_larg[i];
          c.gridheight= P02_haut[i];
          c.weightx   = P02_px[i];
          c.weighty   = P02_py[i];
          switch(i)
              {
              case 0: add(p02_pan1, c); break;
              case 1: add(p02_pan2, c); break;
              case 2: add(p02_pan3, c); break;
              case 3: add(p02_pan4, c); break;
              }
          }
    En faisant ainsi, j'ai faits des panels contenants des tonnes de boutons et de labels, et je m'y suis toujours bien retrouvé !!

    Voilà, c'était juste une petite remarque qui j'espère profitera à ceux que le GridBagLayout rebute !!

    ;-) ;-)

    Amicalement...

  6. #6
    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
    Pour répondre à ta question Bighobbit, c'est juste que tu as l'air de confondre les différentes contraintes du GridBagConstraints.
    Et une seule contrainte suffit, inutile d'en déclarer plusieurs.
    Essaie de nous décrire la disposition de tes composants pour voir ce qui ne va pas dans tes déclarations.
    Mess with the best, die like the rest!

  7. #7
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 82
    Points : 55
    Points
    55
    Par défaut
    Et bien, dans l'exemple dont j'ai mis le code, je souhaite simplement avoir deux panel.

    Un panel Bleu (1 colonne de large, toute la frame de haut).
    Un panel Rouge (2 colonnes de large, toute la frame de haut)

    Comme ca :
    _ _ _ _
    RR B
    RR B
    _ _ _ _


    Et là j'ai plutot du

    _ _ _ _
    R R B B
    R R B B
    _ _ _ _

    Bon, j'y retourne faut que j'étudie le code de calogerogigante

    Merci
    R

  8. #8
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 82
    Points : 55
    Points
    55
    Par défaut
    D'après l'exemple de calogerogigante,

    j'en déduis qu'il faut bel et bien multiplier les contraintes.
    Si on enlève les Weight, on a un dessein ridicule au centre de l'écran.
    Si on enlève les GridWeight, on a qque chose de bizarre aussi.

    Et c'est ca qui me parait étrange, Gridwidth et Weightx semble redondant... mais indispensable tous les deux (sic)

  9. #9
    Membre confirmé Avatar de calogerogigante
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    602
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2003
    Messages : 602
    Points : 497
    Points
    497
    Par défaut
    Juste une petite remarque : mon dessin explicatif posté ci-dessus n'a rien à voir avec le bout de code qui vient d'un de mes projets...

    Je dis ça juste pour ne pas t'induire en erreur...

  10. #10
    Membre confirmé Avatar de calogerogigante
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    602
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2003
    Messages : 602
    Points : 497
    Points
    497
    Par défaut
    Gridwidth et Weightx semblent redondant.
    Non, ils ne sont pas redondant car ils ne représentent pas la même chose.

    Gridwidth représente le nombre de cases sur lesquelles ton composant s'étale...

    Et Weight représentent le poids relatif que ton composant occupe : exemple

    soit deux composants A et B côte à côte : soit A qui s'étale sur deux cases et B qui s'étale sur 1 case.
    Les deux ensembles forment une longueur (horizontale) de 3 cases.
    Si tu donnes à A un wheight de 60 et à B un weight de 40 par exemple, cela veut dire que les 2 cases occupées par le composant A vont s'étaler sur 60% de la longueur totale, et que la case occupée par B va s'étaler sur 40 % de la longueur totale...

    Bien que tu ne sois pas obligé de faire leur somme égale à 100, il vaut mieux faire en sorte que la somme de tes weight (vertical ou horizontal) fassent 100%, c'est plus simple à maintenir...

    Voici un exemple complet avec lequel tu peux t'entrainer :
    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
    import javax.swing.*;
    import java.awt.*;
     
    class MaFenetre extends JFrame
    {
    public JPanel pan1;
    public JPanel pan2;
    public JPanel pan3;
    public JPanel pan4;
    public JPanel pan5;
    public JPanel pan6;
     
    public MaFenetre()
      {
      setTitle("Exemple");
      setSize(800,600);
      setDefaultCloseOperation(EXIT_ON_CLOSE);
      Container contenu = getContentPane();
      GridBagLayout g = new GridBagLayout();
      contenu.setLayout(g);
      GridBagConstraints c = new GridBagConstraints();
                         c.fill = c.BOTH ;
     
         pan1=new JPanel(); pan1.setBackground(Color.blue);
         pan2=new JPanel(); pan2.setBackground(Color.white);
         pan3=new JPanel(); pan3.setBackground(Color.black);
         pan4=new JPanel(); pan4.setBackground(Color.red);
         pan5=new JPanel(); pan5.setBackground(Color.yellow);
         pan6=new JPanel(); pan6.setBackground(Color.green);
     
      int x[]   = { 0, 3, 3, 0, 0, 3};
      int y[]   = { 0, 0, 1, 2, 3, 2};
      int larg[]= { 3, 2, 2, 3, 3, 2};
      int haut[]= { 2, 1, 1, 1, 1, 2};
      int px[]  = {60,40, 0, 0, 0, 0};
      int py[]  = { 0,25,25,25,25, 0};
     
      for (int i=0; i<x.length; i++)
          {
          c.gridx=x[i];
          c.gridy=y[i];
          c.gridwidth=larg[i];
          c.gridheight=haut[i];
          c.weightx=px[i];
          c.weighty=py[i];
          switch(i)
             {
             case 0: contenu.add( pan1, c );
             case 1: contenu.add( pan2, c );
             case 2: contenu.add( pan3, c );
             case 3: contenu.add( pan4, c );
             case 4: contenu.add( pan5, c );
             case 5: contenu.add( pan6, c );
             }
          }
      }
    }
     
     
    public class GUI_complique_01
    {
    public static void main (String args[])
       {
       MaFenetre fen = new MaFenetre();
       fen.setVisible(true);
       }
    }

  11. #11
    Membre régulier Avatar de Actarus78
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Septembre 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 87
    Points : 118
    Points
    118
    Par défaut
    Voici une classe qui permet de simplifier l'utilisation d'un GridBagLayout

    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
    package com.rfo.framework.gui.tools;
     
    import java.awt.Container;
    import java.awt.GridBagConstraints;
    import java.awt.GridBagLayout;
     
    import javax.swing.JComponent;
     
     
    public class GBL {
     
    private static GridBagConstraints	c = new GridBagConstraints();
     
    	/**
             * This class build constraints of a GridBagLayout
             * @param Log l (an instance of Log to write any error into the log file)
             * @param JComponent component (the component to add to the container)
             * @param Container  container (the container of the component we want to add)
             * @param int x (Specifies the cell containing the leading edge of the component's display area, where the first cell in a row has x=0.
             *                               the leading edge of a component's display area is its left edge for a horizontal, left-to-right container and its right 
             *                                      edge for a horizontal, right-to-left container. The value RELATIVE specifies that the component be placed immediately 
             *                                      following the component that was added to the container just before this component was added.). 
             * @param int y (Specifies the cell at the top of the component's display area, where the topmost cell has gridy=0.
             *                                      The value RELATIVE specifies that the component be placed just below the component that was added to the container just 
             *                                      before this component was added. )
             * @param int width (Specifies the number of cells in a row for the component's display area.)
             * @param int height  (Specifies the number of cells in a column for the component's display area.)
             * @param int fill (This field is used when the component's display area is larger than the component's requested size.
             *                                              The following values are valid for fill: 
             *                                              NONE: Do not resize the component. 
             *                                              HORIZONTAL: Make the component wide enough to fill its display area horizontally, but do not change its height. 
             *                                              VERTICAL: Make the component tall enough to fill its display area vertically, but do not change its width. 
             *                                              BOTH: Make the component fill its display area entirely. )
             * @param int anchor (This field is used when the component is smaller than its display area. It determines where, within the display area, to place the component. The default value is CENTER)
             * @param double weightx (Specifies how to distribute extra horizontal space.)
             * @param double weighty (Specifies how to distribute extra vertical space.)
             */
    	public static void addComponent(JComponent component,Container container,int x,int y,int width,int height,int fill,int anchor,double weightx,double weighty){			
     
    		if (container.getLayout().getClass()!=GridBagLayout.class){
    			System.out.println("Can't build constraints to "+container.getLayout().getClass());
    			 return;
    		}
     
    		c.gridx 		= x;
    		c.gridy 		= y;
    		c.gridwidth 	= width;
    		c.gridheight 	= height;
    		c.fill			= fill;
    		c.anchor		= anchor;
    		c.weightx		= weightx;
    		c.weighty 		= weighty;
     
    		container.add(component, c);
    	}
     
    }
    et dans la classe qui utilisera un gridbaglayout

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    import com.rfo.framework.gui.tools.GBL;
     
    ...
     
    this.setLayout(new GridBagLayout()); //this étant une JFrame par exemple
    GBL.addComponent(myComponent,this,0,0,1,1,GridBagConstraints.HORIZONTAL,GridBagConstraints.NORTH,1.0,1.0);
     
    etc...

  12. #12
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut
    Citation Envoyé par barbu0055
    Je suis désolé de te contreduire Xavlours mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    add(component,constraint);
    marche parfaitement.
    Et ca revient exactement au même que la solution que tu donnes.
    Ok, je le saurai, merci. Je n'avais jamais essayé comme ça puisque le copy/paste de l'exemple en javadoc marchait très bien.
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  13. #13
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 82
    Points : 55
    Points
    55
    Par défaut
    humm... c'est très interessant calogerogigante...

    J'ai compris mon erreur.
    En fait, il faut considérer que les colonne sont de largeur variable...
    c'est un peu déconcertant comme notion, mais c'est interessant.

    Ainsi A (2 colonnes) et B (1 colonne), ne représente pas nécessairement 66% et 33% en terme de Weight.
    Très perturbant je trouve...


    toutefois, jouant avec les exemple... une autre question a surgit.
    Le code suivant affiche deux colonnes de tailles différentes (75% et 25%)
    Mais dans le JPanel de la colonne à 25%, je demande l'affichage d'un JLabel (avec un texte bidon, peu importe).

    Lorsque mon appli est suffisamment grande, pas de soucis, les proportions sont respectées. Par contre... lorsque je rétrécis ma fenetre il semble donner la priorité à l'affichage complet du JLabel, faisaint fi de mes proportions...
    Bon, j'ai fouinassé du coté de la méthode Fill, puisqu'elle me semblait assez explicite... manque de pot... rien à voir...

    Merci d'avance !!!

    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
     
    import java.awt.*;
    import javax.swing.*;
     
     
    public class Test
    {
    	public static void main(String[] args)
    	{
     
    		//Creation Frame
    		Fenetre_principale appli = new Fenetre_principale();
    		appli.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            appli.setVisible(true);
        }
    } 
     
     
     
    class Fenetre_principale extends JFrame {
    	public Fenetre_principale() {
    	    setLocation(50,50);
    	    setSize(400,400);
    		GridBagLayout layout = new GridBagLayout();
    		this.setLayout(layout);
     
     
            //Creation Panels & remplissage
    		Panneau_navigation Zone_navigation = new Panneau_navigation();
    		GridBagConstraints c1 = new GridBagConstraints();
    	      c1.gridx = 3;
    	      c1.gridy = 0;
    	      c1.gridwidth = 1;
    	      c1.gridheight = 2;
    	      //c1.anchor = GridBagConstraints.FIRST_LINE_END;
    	      c1.fill = GridBagConstraints.BOTH;
    	      c1.weightx = 25;
    	      c1.weighty = 100;
    	    layout.setConstraints(Zone_navigation, c1);  
    	    add(Zone_navigation);
     
     
    		Panneau_image Zone_image = new Panneau_image();
    		GridBagConstraints c2 = new GridBagConstraints();
    	      c2.gridx = 0;
    	      c2.gridy = 0;
    	      c2.gridwidth = 3;
    	      c2.gridheight = 2;
    	      //c2.anchor = GridBagConstraints.CENTER;
    	      c2.fill = GridBagConstraints.BOTH;
    	      c2.weightx = 75;
    	      c2.weighty = 25;
    	    add(Zone_image,c2);
            setVisible(true);
    	}
    }
     
    class Panneau_navigation extends JPanel {
    	public Panneau_navigation(){
    		this.setBackground(Color.red);
    		add(new JLabel("Hello"));
    	}
    }
     
     
    class Panneau_image extends JPanel {
     	public Panneau_image (){
    		this.setBackground (Color.BLUE);
    	}
    }

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

Discussions similaires

  1. comment débuter avec struts2
    Par stagepfe dans le forum Struts 2
    Réponses: 2
    Dernier message: 12/05/2009, 14h20
  2. [Liferay] Comment débuter avec Liferay?
    Par isicien dans le forum Portails
    Réponses: 1
    Dernier message: 09/02/2009, 11h06
  3. Comment débuter avec Struts?
    Par isicien dans le forum Struts 2
    Réponses: 2
    Dernier message: 02/01/2009, 14h20
  4. Comment débuter avec Hyperion Essbase ?
    Par nbibil dans le forum EPM (Hyperion)
    Réponses: 2
    Dernier message: 03/11/2008, 12h20
  5. Comment débuter avec D2006
    Par Cazaux-Moutou-Philippe dans le forum EDI
    Réponses: 2
    Dernier message: 24/04/2006, 11h45

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