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 :

Action ListSelectionListener .


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2008
    Messages : 23
    Par défaut Action ListSelectionListener .
    Alors voila, j'ai une liste, je veux lorsque je sélectionne un élement de ma liste, qu'une breve description soit écrite automatique dans un panel en dessous de la liste.
    Alors j'ai bien créée ma liste, j'ai penser devoir ajouter une ListeSelectionListener avec comme parametre ma JFrame actuelle (this), j' créé mon panel avec un label "description" en dessous et la je bloque je sais comment remplir la méthode permettant de changer le texte de mon label, mais je ne sais pas comme lier le fait que je sélectionne un élement au changement du texte de mon label?
    Alors je fais encore une fois appelle a votre aide merci beaucoup

    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
        private void build() {
            setTitle("Portail de vente");
            setSize(600,700);
            setLocationRelativeTo(null);
            setResizable(true);
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setContentPane(buildContentPane());
        }
     
        private JPanel buildContentPane(){
            catalogueQuinc.addListSelectionListener(this);
        public void valueChanged(ListSelectionEvent e) {
            String liste=(String) getList1().getSelectedValue();
            String v="";
            for(Pièce p:getPanierEcran().getPanier())
            {if(p.getNom().equals(liste))
           {v=v+"Nom: "+p.getNom()+"\nPrix: "+p.getPrix()+"\nRéférence: "+p.getReference()+"\n Durée de fabrication: "+p.getDureefabrication();}
        getVide().setText(v);   
        }}

  2. #2
    Membre Expert
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Par défaut
    Bonjour, si ta JList est bien catalogueQuinc et que ta JFrame implémente l'interface ListSelectionListener, alors quand la sélection de la JList changera, la méthode valueChanged sera appelée.

    Il y a un problème d'accolade avec la fonction buildContentPane(), c'est juste un problème de copié/collé?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2008
    Messages : 23
    Par défaut
    oui c'est bien un problème de copier/coller.
    Merci de ta réponse s rapide.

    Alors j'ai bien tout comme tu m'as dit, mais quand je compile je me retrouve avec une erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    Tandis que lorsque je met en comment la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            catalogueQuinc.addListSelectionListener(this);
    Je n'ai plus ce problème mais rien ne se passe quand je sélectionne un nouvel élement dans ma liste, du coup.

    Si vous avez une réponse a ca, je suis preneur merci encore

  4. #4
    Membre Expert
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Par défaut
    Où est déclaré catalogueQuinc? à priori c'est ça qui est null, donne un peu plus de code si tu veux qu'on t'aide

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2008
    Messages : 23
    Par défaut Mon code java
    Bon je ne voulais pas en arriver la, car je débute et je sais que je code comme un branquiniole, shame on me alors voila


    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
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    package tpnote;
     
    /**
     *
     * @author Silouane
     */
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.FlowLayout;
    import java.awt.event.ActionEvent;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JButton;
    import java.awt.event.ActionListener;
    import javax.swing.JTextField;
    import javax.swing.JComboBox;
    import javax.swing.JMenuBar;
    import javax.swing.JMenu;
    import javax.swing.JMenuItem;
     
     
     
    import java.awt.Color;
    import java.awt.FlowLayout;
     
    import java.awt.GridBagLayout;
    import java.awt.GridLayout;
    import java.util.Vector;
    import javax.swing.BoxLayout;
    import javax.swing.DefaultListModel;
    import javax.swing.JButton;
    import javax.swing.JComboBox;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JList;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JTextField;
    import javax.swing.event.ListSelectionEvent;
    import javax.swing.event.ListSelectionListener;
     
    public class Portail extends JFrame implements ListSelectionListener {
    private JLabel label1;
    private JLabel label2;
    private JList catalogueQuinc;
    private JList panierUser;
    private Panier panierEcran=new Panier(0,0);
    DefaultListModel listModel = new DefaultListModel();
    DefaultListModel catalogue=new DefaultListModel();
    public Catalogue cat=new Catalogue();
    public Vector<Pièce> elCata=cat.elementDuCatalogue();
    public Vector<String> elCataString=new Vector<String>();
    public JLabel vide;
     
    public Portail(){
    	super();
     
    	build();
    }
     
        private void build() {
            setTitle("Portail de vente");
            setSize(600,700);
            setLocationRelativeTo(null);
            setResizable(true);
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            setContentPane(buildContentPane());
        }
     
        private JPanel buildContentPane(){
            JPanel panel1 = new JPanel();
            BoxLayout    bl=new BoxLayout(panel1,BoxLayout.Y_AXIS);
    	panel1.setLayout(bl);
            catalogueQuinc.addListSelectionListener(this);
            JPanel panel2=new JPanel();
            BoxLayout    bl1=new BoxLayout(panel2,BoxLayout.X_AXIS);
            panel2.setLayout(bl1);
            JPanel panel3=new JPanel();
            BoxLayout    bl2=new BoxLayout(panel3,BoxLayout.X_AXIS);
            panel3.setLayout(bl2);
            JPanel panel6=new JPanel();
            BoxLayout    bl0=new BoxLayout(panel6,BoxLayout.X_AXIS);
            panel6.setLayout(bl0);
            panel1.add(panel2);
            panel1.add(panel6);
            panel1.add(panel3);
     
            JPanel panel4=new JPanel();
            BoxLayout    bl3=new BoxLayout(panel4,BoxLayout.Y_AXIS);
            panel4.setLayout(bl3);
            JPanel panel5=new JPanel();
            BoxLayout    bl4=new BoxLayout(panel5,BoxLayout.Y_AXIS);
            panel5.setLayout(bl4);
            panel2.add(panel4);
            panel2.add(panel5);
     
            label1 = new JLabel("Catalogue: ");
            panel4.add(label1);
     
            JLabel labelo=new JLabel("Description Objet: ");
            JPanel panel7=new JPanel();
            BoxLayout    bl11=new BoxLayout(panel7,BoxLayout.Y_AXIS);
            panel7.setLayout(bl11);
            panel7.add(labelo);
            JPanel panel8=new JPanel();
            BoxLayout    bl12=new BoxLayout(panel8,BoxLayout.Y_AXIS);
            panel8.setLayout(bl12);
            vide=new JLabel("vide");
            panel8.add(vide);
            panel6.add(panel7);
            panel6.add(panel8);
     
     
     
     
            for(Pièce p:elCata)
            {elCataString.addElement(p.getNom());}
            for(String s: elCataString)
            {catalogue.addElement(s);}
     
     
            catalogueQuinc=new JList(catalogue);
     
            catalogueQuinc.setSelectedIndex(0);
     
            JScrollPane defil1 = new JScrollPane(catalogueQuinc);
            panel4.add(defil1);
     
    	JButton ajouter = new JButton(new Ajouter(this, "Ajouter"));
     
    	panel4.add(ajouter);
     
     
            label2 = new JLabel("Panier: ");
            panel5.add(label2);
     
            panierUser=new JList(listModel);
            JScrollPane defil = new JScrollPane(panierUser);
            panierUser.setVisibleRowCount(6);
            catalogueQuinc.setVisibleRowCount(6);
            panel5.add(defil);
     
            JButton supprimer = new JButton(new Supprimer(this, "Supprimer"));
     
    	panel5.add(supprimer);
     
            JButton valider=new JButton(new ValiderAction(this,"Valider"));
            panel3.add(valider);
            JButton annuler=new JButton(new QuitterAction("Annuler"));
            panel3.add(annuler);
     
            return panel1;}
     
        public JList getList1(){
                return catalogueQuinc;
    }
        public JList getList2(){
            return panierUser;
        }
        public Panier getPanierEcran(){
            return panierEcran;
        }
     
        public void setPanierEcran(Vector<String> liste){
            panierUser=new JList(liste);
        }
     
        public void portailAffiche(){
            panierEcran.afficherTotale();
     
        }
     
        public DefaultListModel getListModel(){
            return listModel;
        }
     
        public Vector<Pièce> getElCata(){
            return elCata;
        }
        public JLabel getVide()
        {return vide;}
     
     
        public void valueChanged(ListSelectionEvent e) {
            String liste=(String) getList1().getSelectedValue();
            String v="";
            for(Pièce p:getPanierEcran().getPanier())
            {if(p.getNom().equals(liste))
           {v=v+"Nom: "+p.getNom()+"\nPrix: "+p.getPrix()+"\nRéférence: "+p.getReference()+"\n Durée de fabrication: "+p.getDureefabrication();}
        getVide().setText(v);   
        }}
    }



    Merci de ton aide

  6. #6
    Membre Expert
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Par défaut
    Déplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    catalogueQuinc.addListSelectionListener(this);
    après :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    catalogueQuinc=new JList(catalogue);
    Et ça devrait aller.
    Tu voulais ajouter le listener alors que tu n'avais pas instancié la JList. C'est ce que je voulais dire dans un message précédent.

    ps : rien ne me saute aux yeux concernant la qualité de ton code

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

Discussions similaires

  1. action APRES chargement complet ...
    Par PinGuy dans le forum Delphi
    Réponses: 7
    Dernier message: 06/07/2006, 17h16
  2. [Struts1.1] Poster un champ vers 2 actions différentes
    Par devtele dans le forum Struts 1
    Réponses: 6
    Dernier message: 17/09/2003, 14h14
  3. [TCheckBox] Neutraliser l'action
    Par Lucien dans le forum Composants VCL
    Réponses: 5
    Dernier message: 14/09/2003, 12h15
  4. [Syntaxe] Action simultanée sur plusieurs élements
    Par FranT dans le forum Composants VCL
    Réponses: 2
    Dernier message: 20/03/2003, 20h20

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