Bonjour,

j'ai un JPanel contenant 2 JComboBox de String, qui sont renseignées avec le même modèle de chaines de caractères.
Ainsi lorsque le modèle change, le contenu des 2 JComboBox est mis à jour en même temps.

Mon problème est que lorsque je sélectionne un élément d'une des JComboBox, l'autre reçoit un aussi évènement, et se positionne sur le même index que sa "copine".

Au début, le traitement d'évènements se faisait par une classe commune:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
cbxFiltreSites = new JComboBox<String>( modeleListeSites );
cbxFiltreSites.addActionListener( this ); // this étant la classe conteneur, implémentant ActionListener

cbxAffectation = new JComboBox<String>( modeleListeSites );
cbxAffectation .addActionListener( this );

/.../
@Override
public void actionPerformed( ActionEvent aEvt ) {
  /.../
}
Donc j'ai décidé de séparer la gestion des évènements, et donné une classe de gestion pour chaque JComboBox
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
cbxFiltreSites = new JComboBox<String>( modeleListeSites );
cbxFiltreSites.addActionListener( new CEvenementFiltre());
 
cbxAffectation = new JComboBox<String>( modeleListeSites );
cbxAffectation .addActionListener( new CEvenementAffectation());
Rien n'y fait, les 2 ComboBox sont toujours couplées.

Pour finir, j'ai décidé de ne plus leur donner le même modèle de données
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
cbxFiltreSites = new JComboBox<String>( modeleListeA );
cbxFiltreSites.addActionListener( new CEvenementFiltre());
 
cbxAffectation = new JComboBox<String>( modeleListeB );
cbxAffectation .addActionListener( new CEvenementAffectation());
Enfin, elles ne sont plus couplées !!???

Je ne vois pas le rapport entre le modèle de String, et le fait qu'un évènement d'une ComboBox se répercute sur l'autre... Vous avez déjà vu ça ?