Bonjour,

J'ai encore un souci de disposition avec GridBagLayout dans une fenetre.

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
97
98
private JPanel buildContentPane() {
        JPanel panel = new JPanel();
        panel.setLayout(new GridBagLayout());
 
        nameRuleLabel = new JLabel("Nom de la règle:");
        nameGroupRuleLabel = new JLabel("Nom du groupe de la règle:");
        whenRuleLabel = new JLabel("Conditions:");
        thenRuleLabel = new JLabel("Conséquences:");
 
        nameRuleValue = new JTextField();
        nameRuleValue.setColumns(20);
 
        String[] columnNames = {"Condition","Valeur"};
        List<Condition> conditions = new ArrayList<Condition>();
        ConditionsTableModel model = new ConditionsTableModel(columnNames, conditions);
 
        // JTable des conditions
        whenRuleTable = new JTable(model);
 
        whenRuleTable.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
 
        whenRuleTable.setPreferredScrollableViewportSize(new Dimension(200, 70));
 
        setUpComboBoxColumn(whenRuleTable.getColumnModel().getColumn(0));
        JScrollPane scrollPaneTable = new JScrollPane(whenRuleTable);
 
        thenRuleValue = new JTextArea();
 
        Object[] elements = new Object[] { "BCS", "RAP", "CV" };
        nameGroupRuleValue = new JComboBox(elements);
 
        JScrollPane scrollPane1 = new JScrollPane(whenRuleValue);
        scrollPane1.setPreferredSize(new Dimension(200, 100));
 
        JScrollPane scrollPane2 = new JScrollPane(thenRuleValue);
        scrollPane2.setPreferredSize(new Dimension(200, 100));
 
        JButton boutonAdd = new JButton("+");
        JButton boutonRemove = new JButton("-");
 
        JButton bouton = new JButton(new ModifyRuleAction(this, ruleBundle, "Modifier la règle"));
 
        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(scrollPaneTable, gbc);
 
        gbc.insets = new Insets(10, 10, 0, 10);
 
        gbc.gridx = 2;
        gbc.gridy = 2;
        panel.add(boutonAdd, gbc);
 
        gbc.insets = new Insets(0, 10, 10, 10);
 
        gbc.gridx = 2;
        gbc.gridy = 3;
        panel.add(boutonRemove, 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;
    }

En fait, j'aimerais que les boutons boutonAdd et boutonRemove soient disposés verticalement l'un de l'autre mais sans espace entre eux, mais ca n'a pas l'air de marcher.

Pourtant, avant de rajouter boutonAdd dans mon panel, j'ai bien fait un
Code : Sélectionner tout - Visualiser dans une fenêtre à part
gbc.insets = new Insets(10, 10, 0, 10)
, pour dire que le prochaine composant (boutonRemove) sera juste en dessous, puis un
Code : Sélectionner tout - Visualiser dans une fenêtre à part
gbc.insets = new Insets(0, 10, 10, 10)
juste avant de rajouter le boutonRemove, puis enfin je remets l'insets à sa valeur par défaut.

Une idée?

PS: Désolé, j'innonde un peu cette section ces derniers jours lol...

Merci :-)