IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants Java Discussion :

Sélection d'un élément d'une JList


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Août 2008
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 265
    Par défaut Sélection d'un élément d'une JList
    Bonjour,


    J'ai un souci avec une de mes JList. Je lui ai affecté plusieurs actions (clic droit, clic gauche et double clic).

    Quand je clique dans ma JList à un endroit qui ne contient pas d'éléments, le "carré" m'indiquant quel élément est sélectionné descend au dernier élément. A priori le dernier élément est donc sélectionné.

    Or moi je voudrais bien que ça ne fasse rien du tout. Si je clique sur un élément, ça doit le sélectionner, sinon ça ne change rien.


    Je dois être un rien embrouillant sur ce sujet



    Merci pour votre attention

  2. #2
    Membre Expert
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 052
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 052
    Par défaut
    Salut,

    Ça ne ressemble au comportement naturel d'une JList. Cela doit venir de ton code.
    Post le.

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Août 2008
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 265
    Par défaut
    Bien voilà la construction de ma JList :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    this.configurationList.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
            this.configurationList.setComponentPopupMenu(popmenu);
    Le truc c'est que j'utilise un .Form et si ça se trouve l'erreur ne vient pas de moi mais de l'initialisation du .Form.


    Sinon voici le contrôleur de ma JList :

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    package snec.models.audit.controllers.TaskSelection;
     
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseListener;
    import java.util.ArrayList;
    import java.util.Observable;
    import java.util.Observer;
    import javax.swing.JList;
    import javax.swing.Timer;
    import org.quartz.Trigger;
    import snec.models.audit.auditModel.AuditModel;
    import snec.models.audit.subView.componentsModels.EquipmentListModel;
     
    public class ConfigurationListController implements Observer, MouseListener, ActionListener {
     
     
        private JList configurationList;
     
        private AuditModel auditModel;
     
        public ConfigurationListController(AuditModel auditModel, JList configurationList) {
            this.auditModel = auditModel;
            this.configurationList = configurationList;
            this.auditModel.getScheduler().extractTriggerList();
            //Initialisation de la liste.
            ArrayList<String> configurationNameList = new ArrayList<String>();
            for (Trigger trigger : this.auditModel.getScheduler().getTriggerList()) {
                configurationNameList.add(trigger.getName());
            }
            EquipmentListModel listModel = new EquipmentListModel(configurationNameList);
            this.configurationList.setModel(listModel);
            this.configurationList.setSelectedIndex(0);
            String triggerName = (String) this.configurationList.getModel().getElementAt(
                    this.configurationList.getSelectedIndex());
            this.auditModel.getScheduler().setSelectedTrigger(triggerName);
        }
     
        //Mise à jour des éléments de la liste.
        public void update(Observable o, Object arg) {
            ArrayList<String> configurationNameList = new ArrayList<String>();
            for (Trigger trigger : this.auditModel.getScheduler().getTriggerList()) {
                configurationNameList.add(trigger.getName());
            }
            EquipmentListModel listModel = new EquipmentListModel(configurationNameList);
            this.configurationList.setModel(listModel);
        }
     
        //Action du clic sur la JList.
        public void mouseReleased(MouseEvent e) {
            Timer timer = new Timer(200, this);
            timer.start();
            //Pour u double clic.
            if (e.getClickCount() >1) {
                if(this.configurationList.getSelectedValue()!=null) {
                    System.out.println("MODIFY");
                }
            //Pour un simple clic.
            } else {
                String triggerName = (String) this.configurationList.getModel().getElementAt(
                        this.configurationList.getSelectedIndex());
                this.auditModel.getScheduler().setSelectedTrigger(triggerName);
                this.auditModel.change();
                //Lancement du menu contextuel (si le bouton de la souris est le bon).
                if (e.isPopupTrigger()) {
                    this.configurationList.getComponentPopupMenu().setVisible(true);
                }
            }
        }
     
        public void mouseClicked(MouseEvent e) {
        }
     
        public void mousePressed(MouseEvent e) {
        }
     
        public void mouseEntered(MouseEvent e) {
        }
     
        public void mouseExited(MouseEvent e) {
        }
     
        public void actionPerformed(ActionEvent e) {
        }
    }

    Sinon je viens de penser que c'est peut-être mon setModel() dans la mise à jour qui me sélectionne le dernier élément. Je vais vérifier ça ...


    Merci de ton attention

  4. #4
    Membre très actif
    Profil pro
    Inscrit en
    Août 2008
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 265
    Par défaut
    Bon c'est pas le setModel()

  5. #5
    Membre Expert
    Avatar de visiwi
    Profil pro
    Inscrit en
    Février 2008
    Messages
    1 052
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 1 052
    Par défaut
    Pourrais-tu fournir un exemple complet d'implémentation, tout simple ?

  6. #6
    Membre très actif
    Profil pro
    Inscrit en
    Août 2008
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 265
    Par défaut
    Arf

    Euh attend je vais voir ce que je peux faire.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. ne pas sélectioner le dernier élément d'une JList
    Par barbiche dans le forum Composants
    Réponses: 1
    Dernier message: 22/05/2007, 13h04
  2. Réponses: 3
    Dernier message: 19/10/2006, 10h51
  3. Comment récupèrer les éléments d'une JList
    Par Orian dans le forum Composants
    Réponses: 13
    Dernier message: 10/09/2006, 12h53
  4. [VBA] sélection d'un élément dans une liste
    Par menguygw dans le forum Access
    Réponses: 3
    Dernier message: 26/04/2006, 13h18
  5. Sélection d'un élément dans une combobox
    Par cluis dans le forum IHM
    Réponses: 2
    Dernier message: 17/03/2006, 15h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo