Bonjour,

Dans une application java/swt, j'ai des CCombo et je voudrais rendre la saisie des données moins fastidieuse pour l'utilisateur en déroulant la Ccombo et en positionnant au fur et à mesure la surbrillance sur l'item le plus proche du text qu'il saisit, lui permettant de valider la proposition avec la touche entrée et sélectionner l'item.

J'ai utilisé un Keylistener dans lequel je déroule la liste et recherche l'item approprié. Celà se passe bien, sauf que le text de la CCombo est remplacé immédiatement par l'item sélectionné, et que le curseur n'y reste pas pour permettre de continuer la saisie. Il ne me semble pas très efficace d'utiliser un seul caractère pour la recherche de l'item correspondant.

Je ne sais pas si j'arrive à me faire comprendre, mais voici le code de mon keylistener :

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
 
natureCcmb.addKeyListener(new KeyAdapter(){
			int index = -1;
			public void keyReleased(KeyEvent e) {	
				String text = natureCcmb.getText();
    			String[] items = natureCcmb.getItems();
				if(e.character == SWT.CR) {
					if(index >= 0) natureCcmb.setText(natureCcmb.getItem(index));
					else natureCcmb.setText("");
					natureCcmb.setListVisible(false);
	    		}else{
	    			natureCcmb.setListVisible(true);	    			
	    			int i = 0;
	    			boolean found = false;
	    			while((!found)&&(i < items.length)){
	    				found = items[i].toLowerCase().startsWith(text.toLowerCase());
	    				if(found) index = i;
	    				i++;
	    			}	
	    			if(index >= 0) natureCcmb.select(index);
	    			natureCcmb.setText(text);
	    			//natureCcmb.setFocus();
	    		}	    					
			}	
		});
Quelqu'un saurait-il quoi faire ?
Merci d'avance