IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

Probleme largeur des composants


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 33
    Par défaut Probleme largeur des composants
    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

  2. #2
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 109
    Par défaut
    Quand tu utilise un Layout particulier le setSize ne marche pas car c'est le layout qui arrange les composants (ce qui leurs permets de prendre des tailles variables pour s'adapter a la fenetre).

    essaye un setPreferredSize().


    Sinon pour ton morceau de code.
    Ne peux tu pas faire plus simple? ca fait beaucoup de gridLayout tout ca.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 33
    Par défaut
    ouai en gros mon composant remplie la "case" dans laquelle il est
    le setpreferredsize ne fonctionne malheuresement pas mieux que le setsize ...

  4. #4
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Avec le GridLayout, la situation est pourtant extrêmement simple : ni le setSize ni le setPreferredSize ne fonctionnent !

    Elle est pas belle la vie ?

    ... ou choisit un autre layout.

Discussions similaires

  1. probleme avec des composants richfaces
    Par dev_newbie dans le forum JSF
    Réponses: 8
    Dernier message: 08/10/2009, 14h30
  2. VS 2005 : Probleme activation des composants
    Par der dans le forum Windows Forms
    Réponses: 1
    Dernier message: 07/05/2008, 10h50
  3. [Synth] Largeur des composants
    Par nicolas.pied dans le forum Agents de placement/Fenêtres
    Réponses: 9
    Dernier message: 08/12/2005, 12h00
  4. taille de fonte et largeur des composants
    Par OutOfRange dans le forum Composants VCL
    Réponses: 6
    Dernier message: 09/11/2005, 21h22
  5. [GridBagConstraints] Probleme espacement des composants
    Par Cyborg289 dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 04/08/2005, 14h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo