Bonjour,

Je suis en train de réaliser une interface graphique en utilisant le GridBagLayout.
Jusqu'ici j'ai réalisé correctement la grille que je voulais (grâce à Joel.drigo qui m'a déjà aidé et a bien expliqué dans cette intéressante discussion : ici)

Mon problème est que le JSlider que j'ai ajouté dans un panel, ne prend pas toute la place que le panel pourrait lui offrir .... et je me retrouve avec un slider trop petit comme vous pouvez voir dans la copie d'écran :
Nom : Screenshot from 2015-12-19 00:56:48.png
Affichages : 470
Taille : 11,4 Ko

Si quelqu'un peut m'aider ! Je vous remercie !

et voici le code que j'ai fait :
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
package com.symphonic.view;
 
import java.awt.Color;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
 
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JSlider;
 
public class Oscillator_view_02 extends JFrame {
 
	/**
         * 
         */
	private static final long serialVersionUID = 7111394988989518864L;
 
	/**
         * DECLARATIONS
         */
		//DECLARATIONS ELEMENTS GRAPHIQUES
	JPanel panelGeneral, panelSlider, panelSliderLabel, panelFrequencyField, panelFrequencyLabel;
	JSlider slider;
	JButton btn_start;
 
		//CONSTANTES OSCILLATEUR
	private final int OSC_FREQ_MIN = 100;
	private final int OSC_FREQ_MAX = 4200;
	private final int OSC_FREQ_VALUE = 440;
 
 
	//CONSTRUCTEUR
	public Oscillator_view_02(String title){
		super();
		//parapétrage de la fenêtre
		buildOscWindow(title);
		buildSlider(title, OSC_FREQ_MIN, OSC_FREQ_MAX, OSC_FREQ_VALUE);
 
		panelGeneral = new JPanel(new GridBagLayout());
		add(panelGeneral);
 
		panelSlider = new JPanel();
		panelSlider.add(slider);
//1ere ligne horizontale
		addPanel(null, panelGeneral, Color.BLUE, 0, 0, 1, 1, 1, 1);
		addPanel(null, panelGeneral, Color.RED, 1, 0, 1, 1, 1, 1);
		addPanel(null, panelGeneral, Color.BLUE, 2, 0, 1, 1, 1, 1);
		addPanel(null, panelGeneral, Color.RED, 3, 0, 2, 1, 1, 1);
		addPanel(null, panelGeneral, Color.BLUE, 5, 0, 1, 1, 1, 1);
		addPanel(null, panelGeneral, Color.RED, 6, 0, 1, 1, 1, 1);
		addPanel(null, panelGeneral, Color.BLUE, 7, 0, 1, 1, 1, 1);
 
//2ème ligne horizontale
		addPanel(null, panelGeneral, Color.GREEN, 0, 1, 1, 1, 1, 1);
		addPanel(null, panelGeneral, Color.YELLOW, 1, 1, 1, 1, 1, 1);
		addPanel(null, panelGeneral, Color.GREEN, 2, 1, 1, 1, 1, 1);
		addPanel(null, panelGeneral, Color.YELLOW, 3, 1, 1, 1, 1, 1);
		addPanel(null, panelGeneral, Color.GREEN, 4, 1, 1, 1, 1, 1);
		addPanel(null, panelGeneral, Color.YELLOW, 5, 1, 1, 1, 1, 1);
		addPanel(null, panelGeneral, Color.GREEN, 6, 1, 1, 1, 1, 1);
		addPanel(null, panelGeneral, Color.YELLOW, 7, 1, 1, 1, 1, 1);
 
//3ème ligne horizontale
		addPanel(null, panelGeneral, Color.RED, 0, 2, 7, 1, 1, 1);
		addPanel(null, panelGeneral, Color.BLUE, 7, 2, 1, 1, 1, 1);
 
//4ème ligne horizontale
		addPanel(panelSlider, panelGeneral, null, 0, 3, 7, 1, 1, 1);
		addPanel(null, panelGeneral, Color.YELLOW, 7, 3, 1, 1, 1, 1);
 
//5ème ligne horizontale
		addPanel(null, panelGeneral, Color.RED, 0, 4, 1, 1, 1, 1);
		addPanel(null, panelGeneral, Color.BLUE, 1, 4, 1, 1, 1, 1);
		addPanel(null, panelGeneral, Color.RED, 2, 4, 1, 1, 1, 1);
		addPanel(null, panelGeneral, Color.BLUE, 3, 4, 1, 1, 1, 1);
		addPanel(null, panelGeneral, Color.RED, 4, 4, 1, 1, 1, 1);
		addPanel(null, panelGeneral, Color.BLUE, 5, 4, 1, 1, 1, 1);
		addPanel(null, panelGeneral, Color.RED, 6, 4, 1, 1, 1, 1);
		addPanel(null, panelGeneral, Color.BLUE, 7, 4, 1, 1, 1, 1);
 
//6ème ligne horizontale
		addPanel(null, panelGeneral, Color.GREEN, 0, 5, 1, 1, 1, 1);
		addPanel(null, panelGeneral, Color.YELLOW, 1, 5, 1, 1, 1, 1);
		addPanel(null, panelGeneral, Color.GREEN, 2, 5, 1, 1, 1, 1);
		addPanel(null, panelGeneral, Color.YELLOW, 3, 5, 1, 1, 1, 1);
		addPanel(null, panelGeneral, Color.GREEN, 4, 5, 1, 1, 1, 1);
		addPanel(null, panelGeneral, Color.YELLOW, 5, 5, 1, 1, 1, 1);
		addPanel(null, panelGeneral, Color.GREEN, 6, 5, 1, 1, 1, 1);
		addPanel(null, panelGeneral, Color.YELLOW, 7, 5, 1, 1, 1, 1);
 
 
	}
 
 
	private static void addPanel(JPanel panelChild, JPanel panelParent, Color color,
			int x, int y, int width, int height, int weightx, int weighty) {
 
		GridBagConstraints gbc = new GridBagConstraints(x, y, width, height, weightx, weighty, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0,0,0,0), 0, 0);
		JPanel panelColor;
		if(panelChild == null) {
			panelColor = new JPanel();
		} else {
			panelColor = panelChild;
		}
		if(color != null) panelColor.setBackground(color);
		panelParent.add( panelColor, gbc );
	}
 
	private void buildSlider(String title, int freq_min, int freq_max, int freq_value) {
		slider = new JSlider();
		slider.setName(title);
		slider.setMinimum(freq_min);
		slider.setPaintLabels(true);
		slider.setPaintTicks(true);
		slider.setMajorTickSpacing(500);
		slider.setMinorTickSpacing(100);
		slider.setMaximum(freq_max);
		slider.setValue(freq_value);
	}
 
	private void buildOscWindow(String title) {
		setTitle(title);
		setSize(1000, 600);
		setLocationRelativeTo(null);	//On centre la fenêtre sur l'écran
		setResizable(false);	//On interdit la redimensionnement de la fenêtre
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);	//On dit à l'application de se fermer lors du clic sur la croix
	}
}