GridBagLayout Swing, tout déconne quand je resize la fenetre

GridBagLayout Swing, tout déconne quand je resize la fenetre - Java - Programmation

Marsh Posté le 27-02-2003 à 08:36:13    

Salut à tous  :hello:  
Désolé de vous imposer ce n-ième post sur le gridbag mais là j'ai pas trouvé de problème similaire déjà posé..
Bon, je crée une JinternalFrame, je lui colle un pannel et je fais mon gridbag tout comme il faut....Lorsque je lance l'application tout va bien, mais dès que je redimensionne la fenêtre le Gridbag trip et me met les boutons dans tous les sens (un peu comme si c'était un FlowLayout!)
Je comprends pas, y'aurais un truc que j'aurais oublié !?
J'avais fait pareil avec awt et ça marchais nickel!
merci d'avance

Reply

Marsh Posté le 27-02-2003 à 08:36:13   

Reply

Marsh Posté le 27-02-2003 à 08:57:18    

si y avait un peu de code, ce serait plus simple pour t'aider

Reply

Marsh Posté le 27-02-2003 à 09:17:52    

Voici le code de ma classe FenScèneQcm

Code :
  1. import java.awt.*;
  2. import java.awt.event.*;
  3. import javax.swing.*;
  4. public class FenScèneQcm extends JPanel
  5. {
  6. JLabel l1 = new JLabel("Possibilités" );
  7. JLabel l2 = new JLabel("Nombre de réponses à choisir" );
  8. JLabel l3 = new JLabel("Scène Suivante" );
  9. JTextField tf1 = new JTextField(5);
  10. JTextField tf2 = new JTextField(10);
  11. JList lis = new JList();
  12. JScrollPane sp = new JScrollPane(lis);
  13. JButton plus = new JButton("+" );
  14. JButton moins = new JButton("-" );
  15. JButton boutOK = new JButton("OK" );
  16. JButton boutAnnuler = new JButton("Annuler" );
  17. JPanel p1 = new JPanel();
  18. JPanel p2 = new JPanel();
  19. JPanel p3 = new JPanel();
  20. JPanel p = new JPanel();
  21. /** Action des boutons */
  22. void donnerContrainte(GridBagConstraints gbc, int gx, int gy, int gw, int gh, int wx, int wy,int constraint)
  23. {
  24.  gbc.gridx=gx;
  25.  gbc.gridy=gy;
  26.  gbc.gridwidth=gw;
  27.  gbc.gridheight=gh;
  28.  gbc.weightx=wx;
  29.  gbc.weighty=wy;
  30.  gbc.fill=constraint;
  31. }
  32. FenScèneQcm(JInternalFrame jj)
  33. {
  34.  super();
  35.  GridBagLayout gridbag = new GridBagLayout();
  36.  GridBagConstraints contrainte = new GridBagConstraints();
  37.  JPanel p = new JPanel();
  38.  p.setLayout(gridbag);
  39.  p1.setLayout(gridbag);
  40.  donnerContrainte(contrainte,0,0,1,1,30,10,GridBagConstraints.BOTH);
  41.  gridbag.setConstraints(l1,contrainte);
  42.  p1.add(l1);
  43.  donnerContrainte(contrainte,0,1,3,1,100,80,GridBagConstraints.BOTH);
  44.  gridbag.setConstraints(sp,contrainte);
  45.  p1.add(sp);
  46.  donnerContrainte(contrainte,1,2,1,1,10,10,GridBagConstraints.BOTH);
  47.  gridbag.setConstraints(plus,contrainte);
  48.  p1.add(plus);
  49.  donnerContrainte(contrainte,2,2,1,1,10,10,GridBagConstraints.BOTH);
  50.  gridbag.setConstraints(moins,contrainte);
  51.  p1.add(moins);
  52.  donnerContrainte(contrainte,0,0,1,1,100,60,GridBagConstraints.BOTH);
  53.  gridbag.setConstraints(p1,contrainte);
  54.  this.add(p1);
  55.  p2.setLayout(gridbag);
  56.  donnerContrainte(contrainte,0,0,1,1,50,50,GridBagConstraints.BOTH);
  57.  gridbag.setConstraints(l2,contrainte);
  58.  p2.add(l2);
  59.  donnerContrainte(contrainte,1,0,1,1,50,50,GridBagConstraints.NONE);
  60.  gridbag.setConstraints(tf1,contrainte);
  61.  p2.add(tf1);
  62.  donnerContrainte(contrainte,0,1,1,1,50,50,GridBagConstraints.BOTH);
  63.  gridbag.setConstraints(l3,contrainte);
  64.  p2.add(l3);
  65.  donnerContrainte(contrainte,1,1,1,1,50,50,GridBagConstraints.NONE);
  66.  gridbag.setConstraints(tf2,contrainte);
  67.  p2.add(tf2);
  68.  donnerContrainte(contrainte,0,1,1,1,100,30,GridBagConstraints.BOTH);
  69.  gridbag.setConstraints(p2,contrainte);
  70.  this.add(p2);
  71.  p3.setLayout(gridbag);
  72.  donnerContrainte(contrainte,0,0,1,1,50,100,GridBagConstraints.BOTH);
  73.  gridbag.setConstraints(boutOK,contrainte);
  74.  p3.add(boutOK);
  75.  donnerContrainte(contrainte,1,0,1,1,50,100,GridBagConstraints.BOTH);
  76.  gridbag.setConstraints(boutAnnuler,contrainte);
  77.  p3.add(boutAnnuler);
  78.  donnerContrainte(contrainte,0,1,1,1,100,10,GridBagConstraints.BOTH);
  79.  gridbag.setConstraints(p3,contrainte);
  80.  this.add(p3);
  81. }
  82. }


 
Et voila le code du moment ou je l'integre dans mon interface

Code :
  1. import java.awt.*;
  2. import java.awt.event.*;
  3. import javax.swing.*;
  4. public class InterfaceCreation extends JFrame
  5. {
  6.     /** Construction de l'interface graphique */
  7.     public InterfaceCreation()
  8.      {
  9.       super("Nom du Logiciel" );
  10.         // Mise en place du conteneur de sous-fenêtres
  11.         JDesktopPane conteneur = new JDesktopPane();
  12.         conteneur.setBackground(Color.gray);
  13.         JPanel contentPane = (JPanel)this.getContentPane();
  14.         contentPane.add(conteneur, BorderLayout.CENTER);
  15.    JInternalFrame scenar = new JInternalFrame("Création Scénario" );
  16.     scenar.setSize(600,700);
  17.         scenar.setVisible(true);
  18.     scenar.setLocation(300,0);
  19.     scenar.setResizable(true);
  20.    FenScèneQcm sc = new FenScèneQcm(scenar);
  21.    scenar.getContentPane().add(sc,BorderLayout.CENTER);
  22.    conteneur.add(scenar);
  23.    this.setSize(900,700);
  24.     }
  25.     public static void main(String[] args)
  26.      {
  27.         InterfaceCreation fenetre = new InterfaceCreation();
  28.         fenetre.setVisible(true);
  29.       }
  30. }


 

Reply

Marsh Posté le 27-02-2003 à 09:39:38    

Pour moi, ce sont les weightx et weighty qui merdent ...

Reply

Sujets relatifs:

Leave a Replay

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