Bonjour,

J'ai repris le code du tutoriel de java.com et j'essaie de le modifier en vain, je voudrai savoir ce qui cloche dans le code à moins que ce que je désire n'est pas possible avec GridBagLayout.

Les boutons 1,2 et 3 en haut à gauche d'une hauteur et largeur fixes, soit une taille normale d'un bouton (quelque que soit la taille de la fenêtre).
Le bouton 5 en bas à droite et d'une largeur et hauteur fixes.
Le bouton 4 qui prend tout ce qui reste comme place, sa taille s'ajuste à la taille de la fenêtre.

Le problème c'est que la hauteur de la ligne 1 suit la hauteur de la ligne 2, ce que je ne veux pas...

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
pane.setLayout(new GridBagLayout());
	GridBagConstraints c = new GridBagConstraints();
	if (shouldFill) {
	//natural height, maximum width
	c.fill = GridBagConstraints.HORIZONTAL;
	}
 
	button = new JButton("Button 1");
	c.weightx = 0.5;
	c.weighty = 1;
	c.fill = GridBagConstraints.HORIZONTAL;
	c.gridx = 0;
	c.gridy = 0;
	pane.add(button, c);
 
	button = new JButton("Button 2");
	c.fill = GridBagConstraints.HORIZONTAL;
	c.weightx = 0.5;
	c.weighty = 1;
	c.gridx = 1;
	c.gridy = 0;
	pane.add(button, c);
 
	button = new JButton("Button 3");
	c.fill = GridBagConstraints.HORIZONTAL;
	c.weightx = 0.5;
	c.weighty = 1;
	c.gridx = 2;
	c.gridy = 0;
	pane.add(button, c);
 
	button = new JButton("Long-Named Button 4");
	c.fill = GridBagConstraints.BOTH;
	c.anchor = GridBagConstraints.CENTER;
	//c.ipady = 40;      //make this component tall
	//c.weightx = 0.0;
	c.gridwidth = 3;
	c.gridheight = 10;
	c.gridx = 0;
	c.gridy = 1;
	pane.add(button, c);
 
	button = new JButton("5");
	c.fill = GridBagConstraints.HORIZONTAL;
	c.ipady = 0;       //reset to default
	c.weighty = 1.0;   //request any extra vertical space
	c.anchor = GridBagConstraints.PAGE_END; //bottom of space
	c.insets = new Insets(10,0,0,0);  //top padding
	c.gridx = 1;       //aligned with button 2
	c.gridwidth = 2;   //2 columns wide
	c.gridy = 12;       //third row
	pane.add(button, c);
a+