Problème de sélection dans une ComboBox

Problème de sélection dans une ComboBox - Java - Programmation

Marsh Posté le 08-01-2009 à 19:26:22    

Bonjour,  
je viens de créer une ComboBox en java, et il se trouve que j'ai un petit problème de sélection :  
Dans la combobox, il y a toujours l'un des items qui est "préselectionné" (il est un peu grisé par rapport aux autres items). Lorsqu'on lance la combobox, l'item préselectionné est le premier. Ensuite, c'est le dernier qu'on a sélectionné qui devient grisé. Et il se trouve qu'il est impossible de le sélectionner (pas d'action lorsqu'on clique dessus). Je pense que ceci est dû au fait que la combo est prévu pour qu'on ne puisse pas sélectionner 2 fois le même item de suite, non ?
Je voudrais donc savoir s'il est possible de supprimer cette préselection, ou s'il existe une méthode pour pouvoir cliquer et sélectionner un item déjà préselectionné (parce que dans mon cas, j'ai besoin de pouvoir sélectionner n'importe quel item à n'importe quel moment)
Merci de votre aide
 
P.S : mon ActionListener commence comme cela :
 
combo.addActionListener(new ActionListener() {
 
   public void actionPerformed(ActionEvent ae) {
    Object o = ((JComboBox) ae.getSource()).getSelectedItem();
    Joueur p = (Joueur) o;
                                                   ...
 
donc je ne vois pas pourquoi je ne pourrais pas sélectionner n'importe quel item ???

Reply

Marsh Posté le 08-01-2009 à 19:26:22   

Reply

Marsh Posté le 20-01-2009 à 15:03:51    

Bonjour
 
Ca ne fonctionnera pas comme tu le souhaites car le problème n'est pas dans le Listener.
L'évènement (ActionEvent ou ItemEvent) n'est pas créé tant que la sélection dans la combo n'est pas modifiée, donc ton code ne sera jamais exécuté.
 
Maintenant, pourquoi veux-tu resélectionner le même élément?  
 
Si c'est pour réaliser la première initialisation, tu peux appeler directement, après construction et initialisation de la combo, la méthode que tu souhaiterais invoquer via le Listener, doSomethingWithObject ci-dessous:
 
 public void actionPerformed(ActionEvent ae) {
    Object o = ((JComboBox) ae.getSource()).getSelectedItem();
    doSomethingWithObject(o);
}
 
public void doSomethingWithObject(Object o) {
 ...
}
 
 
 
 
 
 
 
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed