Bonjour,
j ai un léger probleme ,
j ai plusieurs JPanel imbriqués les uns dans les autres,
et lorsque je rejoute des composants à l interieurs,
je n'arrive pas à redefinir leur largeur avec la methode setsize.
En tout cas elle n as aucun effet ...
pour les jtextfield, si je les difinit par exemple en jtextfield(10),
leur largeur ne change pas non plus.
Auriez vous une idée de mon problème,
voici un moreau de on code :

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
 
    private defCP(String p,int n,BDD bdd,parametrage param) {
        this.p=param;
        mybdd=bdd;
        parcours=p;
        nbreCP=n;
        panneautitre=new JPanel(new GridLayout(1,1,5,5));
        panneaubouton=new JPanel(new GridLayout(1,1,5,5));
        panneau1=new JPanel(new GridLayout (2*nbreCP+1,1,5,5));
        panneau2=new JPanel(new GridLayout (2*nbreCP+1,1,5,5));
        panneau3=new JPanel(new GridLayout (2*nbreCP+1,2,5,5));
        panneaupenal=new JPanel(new GridLayout (2*nbreCP+1,1,5,5));
        panneaumillieu=new JPanel(new GridLayout(1,3,1,1));
        panneaucentral=new JPanel(new GridLayout(1,2,1,1));
        asc=new JScrollPane(panneaucentral);
        NomEpreuve=new JComboBox[nbreCP];
        NomCP=new JComboBox[nbreCP];
        Chrono=new JCheckBox[nbreCP];
        Type=new JLabel[nbreCP];
        penalite=new JTextField[nbreCP];
        init(nbreCP);
        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        remplirbox("choix");
        remplirbox();
        majType();
        this.setSize(300,400);        
        pack();
        fairelesaction();
    }
 
    public void init(int i){
        setLayout(new BorderLayout ());
        add(panneautitre,BorderLayout.NORTH);
        panneautitre.add(new JLabel("Personnalisation des CP",JLabel.CENTER));
        add(panneaubouton,BorderLayout.SOUTH);
        panneaumillieu.add (panneau1, BorderLayout.WEST);
        panneaumillieu.add(panneau2,BorderLayout.CENTER);
        panneaumillieu.add(panneau3,BorderLayout.EAST);
        panneaucentral.add(panneaumillieu,BorderLayout.WEST);
        panneaucentral.add(panneaupenal,BorderLayout.EAST);        
        add(asc,BorderLayout.CENTER);
 
        //1ere Colonne 
 
        panneau1.add(new JLabel("Nom d'Epreuve   ",JLabel.CENTER));
 
 
        for(int j=1;j<2*i;j++){            
            if((j%2==0)){
                NomEpreuve[(j-2)/2]=new JComboBox();
                panneau1.add(NomEpreuve[(j-2)/2]);                               
            }else{
                panneau1.add(new JLabel(""));           
            }
        }
        //2eme Colonne
        panneau2.add(new JLabel("   Numero CP   ",JLabel.CENTER));
 
        for(int j=1;j<2*i+1;j++){            
            if(!(j%2==0)){
                NomCP[(j-1)/2]=new JComboBox();
                NomCP[(j-1)/2].setSize(30,3);                
                panneau2.add(NomCP[(j-1)/2]);
            }else
                panneau2.add(new JLabel("")); 
        }
 
        //3eme et 4eme colonne
        panneau3.add(new JLabel("Activation Chrono     "));
        panneau3.add(new JLabel("Type de CP     "));
 
        for(int j=0;j<2*i-1;j++){
            if(j%2==0){
                panneau3.add(new JLabel(""));
                Type[j/2]=new JLabel("Type du CP "+(j/2+1));
                panneau3.add(Type[j/2]);                
            }else{
                Chrono[(j)/2]=new JCheckBox();
                panneau3.add(Chrono[(j)/2]);
                panneau3.add(new JLabel(""));                
            }
        }
 
        //Colonne penalité
        panneaupenal.add(new JLabel("Pénalité"));
        for (int j=0;j<2*i-1;j++){
            if(j%2==0){
                penalite[j/2]=new JTextField(4);
                panneaupenal.add(penalite[j/2]);
            }else
                panneaupenal.add(new JLabel(""));
 
        }
        remplircases();
        ajoutbouton();
    }
le principal probleme etant que les JTextField penalite[]
prennent la moitié de l ecran en largeur ...
Merci pour votre aide