Prise de tête avec GridBagLayout ...

Messages postés
38
Date d'inscription
vendredi 23 mars 2018
Dernière intervention
3 décembre 2018
-
Bonjour,
Je souhaite alterner une Jcombo avec en dessous un JTextPane. A 2 reprises. Voici mon code ci-dessous :

je ne comprend pas pourquoi les jcombo et les Jtextpane ne se positionnent pas les uns en dessous des autres. Ils sont au milieu. J'ai un text pane ridicule et un autre invisible!!!!!!


public static void addComponentsToPane(Container pane) 
{
if (RIGHT_TO_LEFT) {
pane.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
}

// DÉFINITION DES NOM DES COMPOSANTS
JComboBox cb1 ;
JTextPane tp1 ;
JScrollPane scrollPane1 ;

JComboBox cb2 ;
JTextPane tp2 ;
JScrollPane scrollPane2 ;

....

// DEF DES OBJETS UTILISES PPOUR PLACER LES COMPOSANTS
GridBagLayout placeur = new GridBagLayout() ; // objet de placement des composants
GridBagConstraints contraintes = new GridBagConstraints(); // regles de placement
//getContentPane().setLayout(placeur); // utilise cet objet de placement pour la fenetre
pane.setLayout(placeur);

// Ajout d'un JPanel pour placer la JCombo cb1 et la zone de texte tp1 à positionner en haut
// creation d'un objet de placement pour ce panel
GridBagLayout panelPlaceurCb1 = new GridBagLayout(); //objet de placement pour le panel
GridBagConstraints panelContraintesCb1 = new GridBagConstraints(); // regles de placement
Panel panel1 = new Panel(panelPlaceurCb1);//creation du panel avec son objet de placement
//placement des 2 composants dans le panel

panelContraintesCb1.gridx=0; // colonne 0
panelContraintesCb1.gridy=0; // lignr 0
panelContraintesCb1.gridwidth=1; // nombre de cases occupées horizontalement
panelContraintesCb1.gridheight=1; //nombre de cases occupées verticalement
panelContraintesCb1.fill= GridBagConstraints.HORIZONTAL; //dans quelle direction le composant se déforme pour s'adapter à la taille des cellules
panelContraintesCb1.anchor = GridBagConstraints.WEST; //comment le composant se place dans la cellule
panelContraintesCb1.weightx=100 ; //part de surface est distribuée ou retirée au composant lors du redimensionnement de la fenetre
panelContraintesCb1.weighty=100 ;
panelContraintesCb1.insets= new Insets(10,10,0,10); //marg eexterne du composnt new Insets(h, g, b, d)
panelContraintesCb1.ipadx = 2 ; //marge interne du composant
panelContraintesCb1.ipady = 2 ;
panelPlaceurCb1.setConstraints(cb1, panelContraintesCb1);

panel1.add(cb1);

//composant tp1
panelContraintesCb1.gridx=0; // colonne 0
panelContraintesCb1.gridy=1; //ligne 1
panelContraintesCb1.gridwidth=1; // nombre de cases occupées horizontalement
panelContraintesCb1.gridheight=2; //nombre de cases occupées verticalement
panelContraintesCb1.fill= GridBagConstraints.BOTH ; //dans quelle direction le composant se déforme pour s'adapter à la taille des cellules
panelContraintesCb1.anchor = GridBagConstraints.WEST; //comme,t le composant se place dans la cellule
panelContraintesCb1.weightx=100 ; //part de surface est distribuée ou retirée au composant lors du redimensionnement de la fenetre
panelContraintesCb1.weighty=100 ;
panelContraintesCb1.insets= new Insets(10,10,0,10); //marg eexterne du composnt new Insets(h, g, b, d)
panelContraintesCb1.ipadx = 2 ; //marge interne du composant
panelContraintesCb1.ipady = 2 ;
panelPlaceurCb1.setConstraints(scrollPane1, panelContraintesCb1);
panel1.add(scrollPane1);

// placement du panel cb dans l'applet
panelContraintesCb1.gridx=0;
panelContraintesCb1.gridy = 0;
panelContraintesCb1.gridwidth=1 ;
panelContraintesCb1.gridheight=2;
panelContraintesCb1.fill=GridBagConstraints.BOTH;
panelContraintesCb1.anchor = GridBagConstraints.WEST;
panelContraintesCb1.weightx=100 ; //part de surface est distribuée ou retirée au composant lors du redimensionnement de la fenetre
panelContraintesCb1.weighty=100 ;
panelContraintesCb1.insets= new Insets(10,10,0,10);
panelContraintesCb1.ipadx = 2 ; //marge interne du composant
panelContraintesCb1.ipady = 2 ;
panelPlaceurCb1.setConstraints(panel1, panelContraintesCb1);


pane.add(panel1);



meme code pour la seconde Combo et le second TextPane
je place le panel :

// placement du panel cb dans l'applet
panelContraintesCb2.gridx=0;
panelContraintesCb2.gridy = 2;
panelContraintesCb2.gridwidth=1 ;
panelContraintesCb2.gridheight=2;
panelContraintesCb2.fill=GridBagConstraints.BOTH;
panelContraintesCb2.anchor = GridBagConstraints.WEST;
panelContraintesCb2.weightx=100 ; //part de surface est distribuée ou retirée au composant lors du redimensionnement de la fenetre
panelContraintesCb2.weighty=100 ;
panelContraintesCb2.insets= new Insets(10,10,0,10);
panelContraintesCb2.ipadx = 2 ; //marge interne du composant
panelContraintesCb2.ipady = 2 ;
panelPlaceurCb2.setConstraints(panel2, panelContraintesCb2);

   pane.add(panel2);
Afficher la suite 

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.