Salutation développeur,
Mise en situation :
Dans un fenêtre, je crée un panel.setLayout(new GridLayout());
Je crée un groupe de bouton radio CheckboxGroup.
Je remplie le GridLayout avec des boutons radio ajoutés eu même au CheckboxGroup.
Dernier point, je rajoute un ScrollPane à mon panel.

Mon problème : Les boutons radio ne restent pas dans le GridLayout... Pire, ils empiètent sur les autres panels

Ma question : Avez vous une solution, merci beaucoup

Anexe : un programme que j'ai vite fait codé pour montrer le problème

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
 
 
import java.awt.*;
import javax.swing.*;
 
 
public class Fenetre extends JFrame{
 
        private JPanel pCentre ; 
		private CheckboxGroup groupeRadio;
 
        public Fenetre(){
 
                this.setTitle("JScrollPane + CheckboxGroup");
                this.setSize(300, 300);
                this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                this.setLocationRelativeTo(null);
 
 
                this.setLayout(new BorderLayout());
 
 
				//Je place un bouton en haut
                this.getContentPane().add(new JButton("UP"), BorderLayout.NORTH);
                //Je place un bouton en bas
                this.getContentPane().add(new JButton("DOWN"), BorderLayout.SOUTH);
				//Je place un bouton à gauche
                this.getContentPane().add(new JButton("LEFT"), BorderLayout.WEST);
 
				//Au centre un gridlayout de 25 lignes et 4 colonnes
				pCentre = new JPanel();
				pCentre.setLayout(new GridLayout(25,4));
 
				//Je cree un groupe de bouton radio
				groupeRadio = new CheckboxGroup();
 
				//On rempli le GridLayout
				for(int i=0;i<25;i++){
					pCentre.add(new Checkbox("ligne : "+i, groupeRadio,false));
					pCentre.add(new JLabel("colonne 1"));
					pCentre.add(new JLabel("colonne 2"));
					pCentre.add(new JLabel("colonne 3"));
				}
 
				// Ajout du scrollPane
				JScrollPane scrollPane = new JScrollPane(pCentre);
 
				// On insere le tout dans la fenetre
                this.getContentPane().add(scrollPane, BorderLayout.CENTER);  
 
                this.setVisible(true);
 
        }  
 
		public static void main (String[] args){
			new Fenetre();
		}
}