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

Agents de placement/Fenêtres Java Discussion :

espacement entre les composants


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Novembre 2005
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 188
    Par défaut espacement entre les composants
    Bonjour,

    Dans une fenetre graphique, j'affiche un certain nombre de composants:
    - un JLabel suivi d'un JTextField
    - un JLabel suivi d'un JComboBox
    - un JLabel suivi d'un JComboBox suivi d'un JTextField
    - un JLabel suivi d'un JTextArea

    En utilisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gbc.insets = new Insets(10, 10, 10, 10);
    J'ai pu définir l'espacement entre chaque composant, mais le soucis c'est que j'aimerais que sur ma 3ème ligne que mon JTextField soit collé à mon JComboBox.

    J'ai donc essayé un:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gbc.insets = new Insets(0, 0, 0, 0);
    juste avant l'insertion de mon JTextField dans mon conteneur puis de remettre la contrainte initiale juste après l'insertion, mais cela ne change rien :-(.

    Voila le contenu de ma méthode :

    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
     private JPanel buildContentPane1() {
            JPanel panel = new JPanel();
     
            panel.setLayout(new GridBagLayout());
     
            JLabel nameRuleLabel = new JLabel("Nom de la règle:");
            JLabel nameGroupRuleLabel = new JLabel("Nom du groupe de la règle:");
            JLabel whenRuleLabel = new JLabel("Conditions:");
            JLabel thenRuleLabel = new JLabel("Conséquences:");
     
            JTextField nameRuleValue = new JTextField();
            nameRuleValue.setColumns(20);
     
            //JTextArea whenRuleValue = new JTextArea();
            JTextArea thenRuleValue = new JTextArea();
     
            Object[] elements = new Object[] { "BCS", "RAP", "CV" };
            JComboBox nameGroupRuleValue = new JComboBox(elements);
     
            //JScrollPane scrollPane1 = new JScrollPane(whenRuleValue);
            //scrollPane1.setPreferredSize(new Dimension(200, 100));
            Object[] elements2 = new Object[] { "la langue du document est", "le code marque est"};
            JComboBox whenRuleComboBoxValue = new JComboBox(elements2);
     
            JTextField whenRuleValue = new JTextField();
            whenRuleValue.setColumns(3);
     
            JScrollPane scrollPane2 = new JScrollPane(thenRuleValue);
            scrollPane2.setPreferredSize(new Dimension(200, 100));
     
            JButton bouton = new JButton("Modifier la règle");
     
            thenRuleValue.setTransferHandler(new ToTransferHandler2(TransferHandler.COPY));
     
            GridBagConstraints gbc = new GridBagConstraints();
     
            gbc.insets = new Insets(10, 10, 10, 10);
     
            gbc.gridx = 0;
            gbc.gridy = 0;
            panel.add(nameRuleLabel, gbc);
     
            gbc.gridx = 1;
            gbc.gridy = 0;
     
            panel.add(nameRuleValue, gbc);
     
            gbc.gridx = 0;
            gbc.gridy = 1;
            panel.add(nameGroupRuleLabel, gbc);
     
            gbc.gridx = 1;
            gbc.gridy = 1;
            panel.add(nameGroupRuleValue, gbc);
     
            gbc.gridx = 0;
            gbc.gridy = 2;
            panel.add(whenRuleLabel, gbc);
     
            gbc.gridx = 1;
            gbc.gridy = 2;
            panel.add(whenRuleComboBoxValue, gbc);
     
            gbc.insets = new Insets(0, 0, 0, 0);
            gbc.gridx = 2;
            gbc.gridy = 2;
            panel.add(whenRuleValue, gbc);
     
            gbc.insets = new Insets(10, 10, 10, 10);
     
            gbc.gridx = 0;
            gbc.gridy = 3;
            panel.add(thenRuleLabel, gbc);
     
            gbc.gridx = 1;
            gbc.gridy = 3;
            panel.add(scrollPane2, gbc);
     
            gbc.gridx = 1;
            gbc.gridy = 4;
            panel.add(bouton, gbc);
     
     
            return panel;
        }
    Une idée?

    Merci :-)

  2. #2
    Membre Expert
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 052
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 052
    Par défaut
    salut,

    C'est un cumul de trois éléments qui te permettrons d'obtenir ce que tu souhaite.

    Tout d'abord tu donne un insets à 0 pour ton TextField mais le combo précédent possède une valeur pour l'insets à droite, ce qui te donne encore une marge. Tu doit donc donner un insets à droite de 0 à ton combo ainsi qu'un insets à gauche de 0 pour ton TextField.
    Enfin tu doit attribuer la valeur HORIZONTAL à fill, de façon à dire "place moi les composants sur toutes la longueur de la cellule", sinon par défault c'est NONE et tes composants seront centré. Cela en outre donnera un meilleur équilibre à ton panel.

    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
    private JPanel buildContentPane1() {
    		JPanel panel = new JPanel();
    
    		panel.setLayout(new GridBagLayout());
    
    		JLabel nameRuleLabel = new JLabel("Nom de la règle:");
    		JLabel nameGroupRuleLabel = new JLabel("Nom du groupe de la règle:");
    		JLabel whenRuleLabel = new JLabel("Conditions:");
    		JLabel thenRuleLabel = new JLabel("Conséquences:");
    
    		JTextField nameRuleValue = new JTextField();
    		nameRuleValue.setColumns(20);
    
    		// JTextArea whenRuleValue = new JTextArea();
    		JTextArea thenRuleValue = new JTextArea();
    
    		Object[] elements = new Object[] { "BCS", "RAP", "CV" };
    		JComboBox nameGroupRuleValue = new JComboBox(elements);
    
    		// JScrollPane scrollPane1 = new JScrollPane(whenRuleValue);
    		// scrollPane1.setPreferredSize(new Dimension(200, 100));
    		Object[] elements2 = new Object[] { "la langue du document est",
    				"le code marque est" };
    		JComboBox whenRuleComboBoxValue = new JComboBox(elements2);
    
    		JTextField whenRuleValue = new JTextField();
    		whenRuleValue.setColumns(3);
    
    		JScrollPane scrollPane2 = new JScrollPane(thenRuleValue);
    		scrollPane2.setPreferredSize(new Dimension(200, 100));
    
    		JButton bouton = new JButton("Modifier la règle");
    
    		GridBagConstraints gbc = new GridBagConstraints();
    
    		gbc.insets = new Insets(10, 10, 10, 10);
    		gbc.fill = GridBagConstraints.HORIZONTAL;
    		gbc.gridx = 0;
    		gbc.gridy = 0;
    		panel.add(nameRuleLabel, gbc);
    
    		gbc.gridx = 1;
    		gbc.gridy = 0;
    
    		panel.add(nameRuleValue, gbc);
    
    		gbc.gridx = 0;
    		gbc.gridy = 1;
    		panel.add(nameGroupRuleLabel, gbc);
    
    		gbc.gridx = 1;
    		gbc.gridy = 1;
    		panel.add(nameGroupRuleValue, gbc);
    
    		gbc.gridx = 0;
    		gbc.gridy = 2;
    		panel.add(whenRuleLabel, gbc);
    
    		gbc.insets = new Insets(10, 10, 10, 0);
    		gbc.gridx = 1;
    		gbc.gridy = 2;
    		panel.add(whenRuleComboBoxValue, gbc);
    
    		gbc.insets = new Insets(10, 0, 10, 10);
    		gbc.gridx = 2;
    		gbc.gridy = 2;
    		panel.add(whenRuleValue, gbc);
    
    		gbc.insets = new Insets(10, 10, 10, 10);
    
    		gbc.gridx = 0;
    		gbc.gridy = 3;
    		panel.add(thenRuleLabel, gbc);
    
    		gbc.gridx = 1;
    		gbc.gridy = 3;
    		panel.add(scrollPane2, gbc);
    
    		gbc.gridx = 1;
    		gbc.gridy = 4;
    		panel.add(bouton, gbc);
    
    		return panel;
    	}

  3. #3
    Membre éclairé
    Inscrit en
    Novembre 2005
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 188
    Par défaut Re
    Merci beaucoup

  4. #4
    Membre Expert
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 052
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 052
    Par défaut
    De rien

    Par contre il y avait une faute (dans mon empressement a écrire) :
    La phrase correct à été modifiée et est :
    Tu doit donc donner un insets à droite de 0 à ton ComboBox ainsi qu'un insets à gauche de 0 pour ton TextField.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. comment créer un espace entre les composant
    Par american dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 11/05/2009, 12h00
  2. Réponses: 7
    Dernier message: 17/06/2008, 19h12
  3. Elever l'espace entre les cellules
    Par bdaboah dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 20/04/2005, 15h12
  4. Espacement entre les ligne d'un tableau
    Par Flobel dans le forum Mise en page CSS
    Réponses: 9
    Dernier message: 02/11/2004, 10h33
  5. Espace entre les miliers ex : 12 000
    Par Tchenouleur dans le forum Bases de données
    Réponses: 4
    Dernier message: 04/06/2004, 11h50

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