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

EDT/SwingWorker Java Discussion :

Remplir un jlist à partir d'un fichier txt


Sujet :

EDT/SwingWorker Java

  1. #1
    Membre éclairé Avatar de the watcher
    Inscrit en
    Juillet 2003
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 356
    Par défaut Remplir un jlist à partir d'un fichier txt
    Bonjour à tous,
    Je voudrais remplir un JList à l'aide d'un fichier txt. J'ai alors mis ces méthodes en place :
    initialisation du JList:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    private JList getJListNomPrenom() {
    		if (jListNomPrenom == null) {
    			jListNomPrenom = new JList();
    			jListNomPrenom.setBounds(new Rectangle(1, 1, 170, 421));
    			Vector<String> data = loadData( "NomPrenom.txt" );
    			jListNomPrenom.setListData(data);
    		}
    		return jListNomPrenom;
    	}
    Méthode pour la lecture du fichier text:
    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
    public Vector<String> loadData(String filename) {
    		// TODO Auto-generated method stub
    		Vector<String> data = loadData( "NomPrenom.txt" );
    		data = new Vector<String>();
    		FileReader fin = null;
    		try {
    		java.net.URL url = getClass().getResource( filename );
    		fin = new FileReader(url.toURI().getPath());
    		} catch (Exception e) {
    		System.out.println("Problème de chargement du fichier " + filename + ": " + e);
    		return null;
    	}
    		Scanner sc = new Scanner(fin);
    		while (sc.hasNext()) {
    		data.add(sc.nextLine());
    }
    		sc.close();
    		try {
    		fin.close();
    		} catch (IOException ex) {
    		System.out.println("problem closing FileReader in");
    		}
    		return data;
    	}
    Malheureusement au lancement du programme, j'ai cette erreur:
    java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    ...
    Pouvez_vous m'aider s'il vous plaît à corriger cette erreur

  2. #2
    Membre expérimenté Avatar de uhrand
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 203
    Par défaut Appel récursif!
    Essaie de remplacer la première ligne dans "loadData" par "Vector<String> data;".

  3. #3
    Membre éclairé Avatar de the watcher
    Inscrit en
    Juillet 2003
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 356
    Par défaut
    Citation Envoyé par uhrand Voir le message
    Essaie de remplacer la première ligne dans "loadData" par "Vector<String> data;".
    Est-ce comme ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public Vector<String> Data(String filename)
    en lieu et place de celui-ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public Vector<String> loadData(String filename)

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    non tu remplace ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public Vector<String> loadData(String filename) {
    		// TODO Auto-generated method stub
    		Vector<String> data = loadData( "NomPrenom.txt" );
    		data = new Vector<String>();
    où tu appelle loadData à l'infini, par ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public Vector<String> loadData(String filename) {
    		// TODO Auto-generated method stub
    		Vector<String> data = new Vector<String>();

  5. #5
    Membre éclairé Avatar de the watcher
    Inscrit en
    Juillet 2003
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 356
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    non tu remplace ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public Vector<String> loadData(String filename) {
    		// TODO Auto-generated method stub
    		Vector<String> data = loadData( "NomPrenom.txt" );
    		data = new Vector<String>();
    où tu appelle loadData à l'infini, par ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public Vector<String> loadData(String filename) {
    		// TODO Auto-generated method stub
    		Vector<String> data = new Vector<String>();
    Désolé tchize après avoir suivi ta procédure, j'ai cette erreur:
    Problem loading file pirate.txt: java.lang.NullPointerException
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at javax.swing.JList$5.getSize(JList.java:1689)
    at javax.swing.plaf.basic.BasicListUI.updateLayoutState(BasicListUI.java:1325)

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    ton fichier n'existe pas.

  7. #7
    Membre éclairé Avatar de the watcher
    Inscrit en
    Juillet 2003
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 356
    Par défaut
    J'ai l'impression que le problème se trouve au niveau de l'initialisation de la JList c'est à dire ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    private JList getJListNomPrenom() {
    		if (jListNomPrenom == null) {
    			jListNomPrenom = new JList();
    			jListNomPrenom.setBounds(new Rectangle(1, 1, 170, 421));
    			Vector<String> data = loadData( "NomPrenom.txt" );
    			jListNomPrenom.setListData(data);
    		}
    		return jListNomPrenom;
    	}
    Car le fichier est bel et bien existant. Qu'en pense-tu ?

  8. #8
    Membre éclairé Avatar de the watcher
    Inscrit en
    Juillet 2003
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 356
    Par défaut
    Voici l'erreur générée:
    Problem loading file NomPrenom.txt: java.lang.NullPointerException
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at javax.swing.JList$5.getSize(JList.java:1689)
    at javax.swing.plaf.basic.BasicListUI.updateLayoutState(BasicListUI.java:1325)
    at javax.swing.plaf.basic.BasicListUI.maybeUpdateLayoutState(BasicListUI.java:1294)

  9. #9
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    Ton erreur avec JList n'est que le resultat d'avoir fait un setListData(null), qui lui même est la conséquence de cette erreur: Problem loading file NomPrenom.txt, qui proviens du fait que le ficheir n'a pas été cahrgé, il n'est pas existant, n'a pas le bon nom ou n'est pas au bon endroit.

  10. #10
    Membre éclairé Avatar de the watcher
    Inscrit en
    Juillet 2003
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 356
    Par défaut
    Allo tchize_,
    Je crois que je suis complètement planté. Il va falloir que je revoie mes cours mais en attendant je voudrais te demander un très grand service: Pourrais-tu s'il te plaît me donner un tout petit exemple d'utilisation de JList pour lire un fichier texte ?

    Merci d'avance

  11. #11
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    le problème n'est pas JLIst, le problème c'est que tu ne trouve pas ton fichier sous forme de ressources. Il est ou ce fichier? D'après ton code, il doit se trouver à coté du .class qui fait le chargement.

  12. #12
    Membre éclairé Avatar de the watcher
    Inscrit en
    Juillet 2003
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 356
    Par défaut
    Le fichier est directement dans le dossier principal du projet c'est à dire ici :

  13. #13
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    a cet endroit il n'est pas visible de l'application via les méthode getResource que tu utilise. Ces méthode ne sont utilisables que pour récupérer des ressources qui sont dans le classpath. En l'occurence, déplace ton fichier à coté de ta classe java et il devrais la trouver.

  14. #14
    Membre éclairé Avatar de the watcher
    Inscrit en
    Juillet 2003
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 356
    Par défaut
    Tu as pleinement raison tchize_,
    Pour fonctionner, le fichier devrait en effet se trouver dans la répertoire des .class. Actuellement ça fonctionne mais à supposer que je désire avoir un répertoire spécial pour mes fichiers, quelle méthodes me conseille-tu ?

  15. #15
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    si le fichier doit être séparé de ton jar (par exemple parce qu'il faut écrire dedans) alors tu dois utiliser File et non pas Class.getResource()

  16. #16
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 7
    Par défaut Remplissage Jlist
    Svp,est-ce que qq peut m'aider j'ai eu une erreur lors de l'exécution de mon code java sur eclipse,je veux remplir une jlist à partir d'un fichier en cliquant sur un bouton remplir pour le remplissage l'erreur suivante m'apparait:

    java.io.FileNotFoundException: NomPrenom.txt (Le fichier spécifié est introuvable)
    j'ai pas su comment corrigé ce problème car mon fichier .txt est déjà placé sous mon dossier projet (sous bin et src )..

  17. #17
    Modérateur
    Avatar de MasterMbg
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 719
    Par défaut
    Citation Envoyé par FlowerDxx Voir le message
    Svp,est-ce que qq peut m'aider j'ai eu une erreur lors de l'exécution de mon code java sur eclipse,je veux remplir une jlist à partir d'un fichier en cliquant sur un bouton remplir pour le remplissage l'erreur suivante m'apparait:

    java.io.FileNotFoundException: NomPrenom.txt (Le fichier spécifié est introuvable)
    j'ai pas su comment corrigé ce problème car mon fichier .txt est déjà placé sous mon dossier projet (sous bin et src )..
    Commence d'abord par créer ta propre discussion... Celle ci est déjà marquée RESOLUE!
    Plus tu apprends sérieusement, plus tu te rapproches d'un savoir noble. Une chose est certaine, les difficultés ne s'écarteront de ton chemin...

    Tu es nouveau dans le développement Android, la page des COURS est là pour te faciliter la vie
    Tu peux trouver la réponse à ta question dans la FAQ
    Retrouvez mon tutoriel sur la consommation des services web SOAP
    Pense à voter positivement en appuyant sur en bas à droite de la réponse qui t'a donné une piste de solution.

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

Discussions similaires

  1. remplir une table à partir d'un fichier .txt
    Par intel42 dans le forum Débuter
    Réponses: 1
    Dernier message: 06/02/2012, 13h01
  2. Remplir un echiquier a partir d'un fichier .txt
    Par User Name dans le forum Débuter
    Réponses: 3
    Dernier message: 27/06/2011, 01h56
  3. Remplir une table à partir d'un fichier .txt
    Par deubelte dans le forum Access
    Réponses: 2
    Dernier message: 06/11/2009, 11h58
  4. Remplir une table dans la BD a partir d'1 fichier .txt
    Par aziz_mtl dans le forum PL/SQL
    Réponses: 4
    Dernier message: 04/04/2009, 01h34
  5. Réponses: 4
    Dernier message: 27/07/2005, 12h51

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