Bojour,

Je viens vers vous car je bloque sur une chose que l'on pouvait faire avec une certaine simplicité avec Swing.

Il s'agit d'une combobox qui est remplie avec des valeurs comme cela:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
   private final ObservableList<Couple> data1 =
         FXCollections.observableArrayList(
            new Couple(1,"Azamat","Desc1"),
            new Couple(2,"Azamati","Desc2"),
            new Couple(3,"Azamat3","zzz"),
            new Couple(4,"Azamat4","yyy"),
            new Couple(5,"Azamat5","aaa"),
            new Couple(6,"Veli","bbb"),
            new Couple(7,"Azemat1","ccc"),
            new Couple(8,"Azemat2","ddd"),
            new Couple(9,"Azemat3","eee"),
            new Couple(10,"Nurbek","fff"));

Ma combo est plus au moins comme cela:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
       ComboBox<Couple> comboCouple = new ComboBox<>();
        comboCouple.setEditable(true);
        comboCouple.setItems(data1) ;
        new AutoCompleteComboBoxListener(comboCouple);
        comboCouple.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<Couple>() {
 
            @Override
            public void changed(ObservableValue<? extends Couple> arg0, Couple arg1, Couple arg2) {
                if (arg2 != null) {
                    System.out.println("Selected: " + arg2.getPremier());
                }
            }
        });
Je peux avoir la valeur numérique sans problème (getPremier) SEULEMENT si je choisis une valeur qui existe dans la combo, mais des que j'écris une valeur inexistente ou que je essaie de lui appliquer

Code : Sélectionner tout - Visualiser dans une fenêtre à part
new AutoCompleteComboBoxListener(comboCouple);
J'ai droit à l'erreur:

java.lang.ClassCastException: java.lang.String cannot be cast to es.ioseph.inicio.Couple
J'ai lu quelque chose de appliquer un StringConverter lorsqu'on travaille avec des combobox editables, j'ai essayé quelques exemples de StringConverter sans succes.

Ma classe Couple est ici:

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
    public class Couple<T, U, V> {
    private T x;
    private U y;
    private V z;
 
    public Couple (T premier, U second, V descr){
    	x = premier; y=second;z=descr;
    }
    public T getPremier(){
    	return x;
    }
 
    public U getSecond(){
    	return y;
    }
    public V getDescr(){
    	return z;
    }
    public void affiche(){
    	System.out.println("1er: "+ x + " * 2me: "+ y);
    }
    public String toString()
    {
    	return (String) y; 
    } 
 
    }
Merci si quelqu'un peut me donner des idées.