Bonjour.

Dans une classe (EnergElectr_TranchePuiss), j'ai implémenté entre autres
- une table (table_TranchesPuiss)
- un "action listerner"
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
    @Override public void actionPerformed(ActionEvent e)
    {   
        if (e.getSource() == bout_àPasser_ChoixMach)
        {   
            BigDecimal[] machàInsérer = new BigDecimal[7];
            byte rangéeOùInsérerNouvRangée;
 
            if(table_ChoixMach.getSelectedRow() >=0)
            {   
                try
                {   
                    BigDecimal pNomin = (BigDecimal) formatDécim.parseObject(...);
                    rangéeOùInsérerNouvRangée = trouverRangéeOùInsérer(pNomin);
                    machàInsérer[0] = pNomin;
	            ...
                    machàInsérer[6] = new BigDecimal("0");
 
                    if (monModèleDeTable_MachChoisies.machines.isEmpty())
                        monModèleDeTable_MachChoisies.machines.add(machàInsérer);
                    else
                        monModèleDeTable_MachChoisies.machines.add(rangéeOùInsérerNouvRangée, machàInsérer);
 
                    monModèleDeTable_MachChoisies.fireTableRowsInserted(rangéeOùInsérerNouvRangée, 
                                                                        rangéeOùInsérerNouvRangée);
                    remplacementDuGraphique();
                    nbreCombMachCog = monModèleDeTable_TranchesPuiss.calculCombinaisons(monModèleDeTable_MachChoisies);
                    ajoutRetraitCol(4, (byte) nbreCombMachCog, (List) null);
                  /* Devrait appeler 
                   * table_TranchesPuiss.componentResized(final ComponentEvent e);
                   */
                } catch (ParseException eP)
                {
                    ...
                }
            }
        } else
- Dans 'private void initComponents()', dans la partie qui concerne l'initialisation de cette table 'table_TranchesPuiss', un 'ComponentListener' comprenant du code pour modifier l'étalement des colonnes de la table dès que leur nombre provoque une largeur totale excédant la largeur totale du ViewPort :
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
 
        table_TranchesPuiss.getParent().addComponentListener(new ComponentAdapter()
        {
            @Override public void componentResized(final ComponentEvent e)
            {
                int enfant = table_TranchesPuiss.getPreferredSize().width;
                int parent = table_TranchesPuiss.getParent().getWidth();
 
                if ( enfant < parent)
                {
                    table_TranchesPuiss.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
                }
                else
                {
                    TableColumn colonne;
                    for (int i = 0 ; i < table_TranchesPuiss.getColumnModel().getColumnCount() ; i++)
                    {
                        colonne = table_TranchesPuiss.getColumnModel().getColumn(i);
                        colonne.setPreferredWidth(50);
                    }
 
                    table_TranchesPuiss.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
                }
            }
        }                                                   );
Le problème est que le programme ne passe par cette fonction 'componentResized()' que lors de son initialisation; pas lorsque les événements
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
    @Override public void actionPerformed(ActionEvent e)
    {   
        if (e.getSource() == bout_àPasser_ChoixMach)
        {
        ...
        } else
        if (e.getSource() == bout_EffacerLigne)
        {   
        ...
        }
se produisent.

Quelle instruction dois-je ajouter pour que 'componentResized(final ComponentEvent e)' soit appelée ?
Merci d'avance.