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(); } }
Partager