jpanel, gridbaglayout.... je m'embrouille c l'horreur !

jpanel, gridbaglayout.... je m'embrouille c l'horreur ! - Java - Programmation

Marsh Posté le 15-02-2005 à 23:25:08    

bon voila j'essaie désespérement de construire une petite interface graphique mais au fur et à mesure que j'y pense et repense je mélange toutes les notions et je m'en sors pas du tout !
 
bref je veux créer une fenetre avec trois jpanel qui vont chacun contenir une grille gridbaglayout et des contraintes GridBagConstraints pour le placement des objets.
je veux que deux de mes jpanel soient contenu dans le premier.
par ailleurs dans mon deuxième jpanel j'ai pour l'instant une barre d'outil et deux labels.
 
j'ai donc pondu ça :  
 

Code :
  1. // importation de la class SWING
  2. import javax.swing.* ;
  3. import java.awt.*;
  4. // CLASS console
  5. public class CONSOLE extends JFrame{
  6. // methode pour definir les constraintes
  7.  void buildConstraints(GridBagConstraints Contrainte, int GridX, int GridY,int GridWidth, int Gridheight, double WeightX, double WeightY, int Fill, int Anchor, int IPadX, int IPadY){
  8.  Contrainte.gridx = GridX; // coordonnees x de la cellule
  9.  Contrainte.gridy = GridY; // coordonnees y de la cellule
  10.  Contrainte.gridwidth = GridWidth; // nombre de cellule x
  11.  Contrainte.gridheight = Gridheight; // nombre de cellule y
  12.  Contrainte.weightx = WeightX ; // distribue l'espace suplementaire en x
  13.  Contrainte.weighty = WeightY ; // distribue l'espace suplementaire en y
  14.  Contrainte.fill = Fill ; // pour l'agrandissement du sous composant
  15.  Contrainte.anchor = Anchor ; // position du sous composant qd espace autour de lui
  16.  Contrainte.ipadx = IPadX ; // nombre de pixel x en plus de la taille min
  17.  Contrainte.ipady = IPadY ; // nombre de pixel y en plus de la taille min
  18. }
  19. // methode creant une fenetre CONSOLE de base  
  20. public CONSOLE(){
  21.  // ---------------------------------
  22.  // definition des parametre du cadre
  23.  // ---------------------------------
  24.  super("Console" ); // titre de la fenetre
  25.  this.setSize(400,600); // taille de 100*600
  26.  this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
  27.  // -------------------------------------------------------------------------------
  28.  // creation des conteneur, de leur contraintes et de leurs grilles dans la console
  29.  // -------------------------------------------------------------------------------
  30.  // conteneur
  31.  JPanel Conteneur = new JPanel(); // conteneur principal
  32.  JPanel ConteneurInfo = new JPanel(); // conteneur pour les info
  33.  JPanel ConteneurCouche = new JPanel(); // conteneur pour les couches
  34.  //Contraintes
  35.  GridBagConstraints ContrainteConteneur = new GridBagConstraints(); // contrainte principal
  36.  GridBagConstraints ContrainteConteneurInfo = new GridBagConstraints(); // contrainte Info
  37.  GridBagConstraints ContrainteConteneurCouche = new GridBagConstraints(); // contrainte Couche
  38.  //Grille
  39.  GridBagLayout GrilleConteneur = new GridBagLayout(); // Grille principal
  40.  GridBagLayout GrilleConteneurInfo = new GridBagLayout(); // Grille info
  41.  GridBagLayout GrilleConteneurCouche = new GridBagLayout(); // Grille couche
  42.  // -----------------------------------------------
  43.  // ajout du conteneur principale à l'objet console
  44.  // -----------------------------------------------
  45.  //setContentPane(Conteneur);
  46.  this.getContentPane().add(Conteneur, BorderLayout.CENTER);
  47.  // -----------------------------------------------------------------------------------
  48.  // définition des contraintes et ajout des conteneur secondaire au conteneur principal
  49.  // -----------------------------------------------------------------------------------
  50.  // Conteneur pour les informations
  51.  buildConstraints(ContrainteConteneur,0,1,1,3,0,0,0,0,5,5); // contrainte du conteneur principal  
  52.  GrilleConteneur.setConstraints(ConteneurInfo,ContrainteConteneur) ; // appliquation des contraintes
  53.  Conteneur.add(ConteneurInfo); // ajout effectif
  54.  // Conteneur pour les couches statiques et dynamique
  55.  buildConstraints(ContrainteConteneur,0,2,1,3,0,0,0,0,5,5); // contrainte du conteneur principal  
  56.  GrilleConteneur.setConstraints(ConteneurCouche,ContrainteConteneur) ; // appliquation des contraintes  
  57.  Conteneur.add(ConteneurCouche); // ajout effectif
  58.  // ---------------------------------------------
  59.  // creation des objets info composant la console
  60.  // ---------------------------------------------
  61.  // Barre d'outil
  62.  JToolBar BarreOutil = new JToolBar("Panneau de contrôle" ) ; // barre d'outil horizontal ancrable  
  63.  // Icon de la barre d'outil
  64.  ImageIcon BarreOutilNew = new ImageIcon("new.gif" ); // creation d'une image pour une nouvelle simulation
  65.  JButton BarreOutilButtonNew = new JButton(BarreOutilNew); // creation d'un bouton avec une image pour une new simu
  66.  ImageIcon BarreOutilLoad = new ImageIcon("load.gif" ); // creation d'une image pour une charger simulation
  67.  JButton BarreOutilButtonLoad = new JButton(BarreOutilLoad); // creation d'un bouton avec une image pour charger une simu
  68.  ImageIcon BarreOutilSave = new ImageIcon("floppy.gif" ); // creation d'une image pour save une simulation
  69.  JButton BarreOutilButtonSave = new JButton(BarreOutilSave); // creation d'un bouton avec une image pour save une simu
  70.  ImageIcon BarreOutilHelp = new ImageIcon("help.gif" ); // creation d'une image pour l'aide
  71.  JButton BarreOutilButtonHelp = new JButton(BarreOutilHelp); // creation d'un bouton avec une image pour l'aide
  72.  // Info simulation
  73.  JLabel Nom = new JLabel("Nom de la simulation : " ); // label nom de la simu
  74.  JLabel NomSimu = new JLabel("essaie" ); // label qui va contenir le nom de la simu
  75.  // -----------------------------------------------------------
  76.  // Definition des contraintes et ajout des objets aux conteneurs
  77.  // -----------------------------------------------------------
  78.  // Barre d'outil  
  79.  buildConstraints(ContrainteConteneur,0,0,1,2,0,0,0,0,5,5); // contrainte du conteneur principal  
  80.  GrilleConteneur.setConstraints(Conteneur,ContrainteConteneur) ; // appliquation des contraintes
  81.  Conteneur.add(BarreOutil);
  82.  // Ajout des boutons à la barre d'outil
  83.  BarreOutil.add(BarreOutilButtonNew); // bouton nouveau
  84.  BarreOutil.add(BarreOutilButtonLoad); // bouton charger
  85.  BarreOutil.add(BarreOutilButtonSave); // bouton sauvegarder
  86.  BarreOutil.addSeparator(); // séparateur
  87.  BarreOutil.add(BarreOutilButtonHelp); // bouton aide
  88.  // Label nom de la simu
  89.  buildConstraints(ContrainteConteneurInfo,0,0,3,2,0,0,0,0,0,0); // contrainte pour le label  
  90.  GrilleConteneurInfo.setConstraints(Nom,ContrainteConteneurInfo) ; // appliquation des contraintes
  91.  ConteneurInfo.add(Nom); // ajout du label nom
  92.  // label pour le contenu du nom de la simu
  93.  buildConstraints(ContrainteConteneurInfo,0,0,3,2,0,0,0,0,5,5); // contrainte pour le label contenant le nom de la simu
  94.  GrilleConteneurInfo.setConstraints(NomSimu,ContrainteConteneurInfo) ; // appliquation des contraintes
  95.  ConteneurInfo.add(NomSimu);
  96.  // --------------------------
  97.  // on fait apparaitre l'objet
  98.  // --------------------------
  99.  this.setVisible(true);
  100. }
  101. }


 
le problème c'est que ça ne donne pas du tout le résultat escompté puisque la barre d'outil se trouve en dessous des deux labels alors que ça ne devrait pas être le cas !
 
j'ai l'impression que je m'embrouille un peu entre l'application des grilles au conteneur, le getcontentpanel et tout ça. quelqu'un pourrait me donner une petite piste ?

Reply

Marsh Posté le 15-02-2005 à 23:25:08   

Reply

Marsh Posté le 16-02-2005 à 08:50:39    

Le GridBagLayout n'est pas du tout pratique. Je te conseille la librairie gratuite Forms : https://forms.dev.java.net/ qui est très efficace et rapide à mettre en oeuvre.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed