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 :

problème d'utilisation de mon code(pour une jliste dans une autre classe


Sujet :

Composants Java

  1. #1
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2017
    Messages : 108
    Points : 89
    Points
    89
    Par défaut problème d'utilisation de mon code(pour une jliste dans une autre classe
    Bonsoir;
    je peux pas arriver à utiliser mon code dans une autre classe

    le premier code c'est la classe 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
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    /*
     * To change this license header, choose License Headers in Project Properties.
     * To change this template file, choose Tools | Templates
     * and open the template in the editor.
     */
     
    /**
     *
     * @author W.S.I
     */
    import javax.swing.JFrame;
    import javax.swing.JList;
    import javax.swing.JLabel;
    import java.awt.BorderLayout;
    import javax.swing.event.ListSelectionEvent;
    import javax.swing.event.ListSelectionListener;
    import java.awt.Font;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.util.Iterator;
    import java.util.List;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import javax.swing.DefaultListModel;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import org.apache.poi.EncryptedDocumentException;
    import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
     
    public class jliste extends JFrame  {
     JList liste = new JList();
     
     
     public jliste() throws IOException, FileNotFoundException, EncryptedDocumentException, InvalidFormatException {
     	BorderLayout borderLayout = (BorderLayout) getContentPane().getLayout();
     	borderLayout.setHgap(100);
     
     //String choix[] = {" Ranap", " Rnsap", " Nbap", " RRC"};
     List<String> ranapdl= new java.util.ArrayList<>();
    			List<String> ranapul= new java.util.ArrayList<>();
    			List<String> ranap= new java.util.ArrayList<>();
    			List<String> rnsapdl= new java.util.ArrayList<>();
    			List<String> rnsapul= new java.util.ArrayList<>();
    			List<String> rnsap= new java.util.ArrayList<>();
    			List<String> nbapdl= new java.util.ArrayList<>();
    			List<String> nbapul= new java.util.ArrayList<>();
    			List<String> nbap= new java.util.ArrayList<>();
    			List<String> rrcdl= new java.util.ArrayList<>();
    			List<String> rrcul= new java.util.ArrayList<>();
    			List<String> rrc= new java.util.ArrayList<>();
    			List<String> vide= new java.util.ArrayList<>();
     
    excelreader ex=new excelreader("Call Trace info.xls",vide,ranapdl,ranapul,ranap,rnsapdl,rnsapul,rnsap,rrcdl,rrcul,rrc,nbapdl,nbapul,nbap);
     
    List<String> listf=ex.getfull_list();
    /*for (Iterator it=listf.iterator();it.hasNext();){
                  
                  
                System.out.println(it.next());}*/
     
       DefaultListModel listModel = new DefaultListModel();
      int size = listf.size();
            for (int index = 0; index < size; index++) {
                listModel.addElement(listf.get(index));
            }
            liste.setModel(listModel);
     
     liste.setFont(new Font("Engravers MT", Font.PLAIN, 11));
         JScrollPane jScrollPane6 = new javax.swing.JScrollPane();
         JPanel jPanel3 = new javax.swing.JPanel();
         jPanel3.setBounds(10, 110, 60, 10);
     
     jScrollPane6.setViewportView(liste);
      jPanel3.add(jScrollPane6, java.awt.BorderLayout.CENTER);
    getContentPane().add(jPanel3);
    setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    pack();
    setVisible(true);
     
     
    liste.addListSelectionListener(this::listeValueChanged);
     }
     
    public List<String> listeValueChanged(ListSelectionEvent e) {
     
      String nom1 = (String) liste.getSelectedValue();
    List<String> listsele= new java.util.ArrayList<>();
            if (e.getValueIsAdjusting() == true){
    	System.out.println(nom1);
            listsele.add(nom1);
            setVisible(false);
    }
    return listsele;
    }
     
     
     
     
     
    }
    le deuscieme c'est la methode de la deuscieme classe ou j'aime utiliser la methode listeValueChange
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     public void mouseReleased(MouseEvent e) {
                        draw(e.getX());
     
                        try {
                            jliste    b= new jliste();
     
                            ListSelectionEvent   ev=null;
                            List<String> listee= b.listeValueChanged( ev);
                            System.out.println( listee.get(0));
    j'arrive pas comment utiliser le parametre ListSelectionEvent..
    la liste s'affiche mais y'a des exceptions lors d'execution du code
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at jliste.listeValueChanged(jliste.java:92)dans ce code c'est ligne 88( if (e.getValueIsAdjusting() == true))


    merci de vous m'aider

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    ListSelectionEvent ev=null; : tu mets null dans ev...
    List<String> listee= b.listeValueChanged( ev); tu passes ev en paramètre de listValueChanged, donc null...
    public List<String> listeValueChanged(ListSelectionEvent e) { donc e est null

    Et ça t'etonne d'avoir une NullPointerException sur if (e.getValueIsAdjusting() == true){ ?

    C'est absurde ce que tu fais : listeValueChanged, c'est la méthode censée réagir à la sélection dans la liste, par l'entreprise de la lamba qui sert d'écouteur dans liste.addListSelectionListener(this::listeValueChanged);.
    Toi tu fais je ne sais quoi dans une autre classe pour écouter un évenement de la souris je ne sais où et tenter de le faire traiter par l'écouteur d'un autre composant... en passant null, donc rien.
    On écoute les évenements sur les composants qui sont censés les recevoir. On peut éventuellement bidouiller pour injecter un évenement (c'est se compliquer la vie pour rien), mais au moins il faut injecter une instance, histoire qu'on puisse le traiter de manière cohérente (un ListSelectionEvent c'est un évenement qui caractérise une sélection dans une liste !!!).

    Si le but de d'afficher une liste de choix au relâchement de la souris, le plus simple est d'afficher un menu popup. Si le nombre de choix est très grand, le plus simple est d'afficher un dialogue (classe JDialog) modal (ou pas) . dans listeValueChanged du stocke dans un attribut la sélection, que tu peux récupérer dans la méthode mouseReleased.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2017
    Messages : 108
    Points : 89
    Points
    89
    Par défaut
    je veux afficher une liste des éléments lorsque je relache la sourie et en meme temps je veux recuperer l'element selectionné dans une variable pour que je puisse réutiliser ailleurs

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par joel.drigo Voir le message
    Si le nombre de choix est très grand, le plus simple est d'afficher un dialogue (classe JDialog) modal
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  2. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  3. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  4. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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