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

avec Java Discussion :

Faire appel a une autre classe


Sujet :

avec Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 48
    Points : 51
    Points
    51
    Par défaut [RESOLUT] Faire appel a une autre classe
    Bonjour a tous,
    Je débute en JAVA depuis 2,3 mois (BTS informatique de Gestion)

    Actuellement en vacances et sans professeur , voila deux jours que je suis bloqué sur mon projet personnel.

    Mon problème est que j'aimerais récupérer les valeurs de la variable rligneUrlDossier dans ma class LectureGestionDossier pour les appeler dans mon autre classe ListerUnDossier dans la variable nomDossier .

    Code de LectureGestionDossier:
    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
    package ProgrammeFinal;
     
    import java.io.*;
     
    public class LectureGestionDossier {
     
    	// On le lit
    	static void lecture() {
    		String source = "GestionDossier.txt";
    		try {
     
    			String ligne="", rligneUrlDossier = "", rligneNomDossier = "";
    			BufferedReader fichier = new BufferedReader(new FileReader(source));
     
    			while ((ligne = fichier.readLine()) != null) {
    				rligneUrlDossier = ligne.substring(0, (ligne.indexOf("*")));
    				rligneNomDossier = ligne.substring((ligne.indexOf("*") + 1),
    						ligne.length());
    				System.out.println("Url du dossier: " + rligneUrlDossier);
    				System.out.println("Nom du dossier: " + rligneNomDossier);
     
    			}
    			// On referme
    			fichier.close();
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    	public static void main(String[] args){
    		lecture();
    	}
     
    }
    Code de ListerUnDossier:
    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
    package ProgrammeFinal;
     
    import java.io.*;
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.Scanner;
     
    import javax.swing.filechooser.FileFilter;
     
     
    public class ListerUnDossier{
     
    	  static void lecture2()  {
    		  //**************************\\
    		 //         Paramètres         \\
    		   //Nom du dossier a lister
    		  String nomDossier = "src";
    		 System.out.println(nomDossier);
    		  //Extension a liste ("." = all)
    		  listeRepertoire( new File(nomDossier));
    	  }
     
    	  public static void listeRepertoire ( File repertoire ) {
    	        System.out.println ( repertoire.getPath() + " - " + repertoire.lastModified() + " - " + repertoire.length());
     
    	        if ( repertoire.isDirectory ( ) ) {
    	                File[] list = repertoire.listFiles();
    	                if (list != null){
    		                for ( int i = 0; i < list.length; i++) {
    		                        // Appel récursif sur les sous-répertoires
    		                        listeRepertoire( list[i]);
    		                }
    	                } else {
    	                	System.err.println("Impossible de lire: "+repertoire);
    	                }
    	        }
    	}
     
     
     
     
    	public static void main(String[] args){
    			lecture2();
     
    		}
     
      }
    J'ai essayé différente méthode, sans succès, même après mettre renseigné sur le net... la seul chose que j'ai réussit c'est :
    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
    package ProgrammeFinal;
     
      import java.io.*;
    import java.util.ArrayList;
    import java.util.Collection;
     
     
     
    public class essai {
     static  void lecture2(LectureGestionDossier rligneUrlDossier)  {
    		  System.out.print(rligneUrlDossier);
     
    	}
     
     
     
     
    	public static void main(String[] args){
    			//On instancie la class LectureGestionDossier
    			LectureGestionDossier lGD = new LectureGestionDossier();
    			// On la lit
    			lecture2(lGD);
     
    		}
     
      }
    Mais sa me retourne "ProgrammeFinal.LectureGestionDossier@ad3ba4"

  2. #2
    Membre du Club
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 40
    Points : 42
    Points
    42
    Par défaut
    Bonjour,
    Pourquoi fait tu tout en static? Le plus simple ne serais pas de créer une classe "normal" qui contiendrais en variable membres ta "rligneUrlDossier" en privée qui serait accessible par un simple get?

    A ce moment la au seins de ton main tu crée l'objet() puis tu fait simplement un objet créé.getxxx(); et cette méthode te retourne une String qui est ta variable.

    en gros tu pourrais avoir un truc du style :

    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
    public class traitementfichier implements Serializable
    {
        private String rligneUrlDossier="";
     
        void traitementfichier()
        {   /*  ton traitement */
            //à un moment initialiser ta variable
            rligneUrlDossier = "un texte ou quoi";
     
        }
     
        public String getRligneUrlDossier() {
            return rligneUrlDossier;
        }
    }

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public class Main {
     
        /**
         * @param args the command line arguments
         */
        public static void main(String[] args)
        {
            traitementfichier TF = new traitementfichier();
            System.out.println("valeur de la variable ligneurldossier : "+TF.getRligneUrlDossier());
     
        }
     
    }
    Voilà j'espère que ma réponse t'aidera

    Moufa

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    402
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 402
    Points : 337
    Points
    337
    Par défaut
    Salutation à toi qui fait aussi une formation BTS IG
    Quand tu dis :
    Mais sa me retourne
    C'est l'affichage de ta procedure lecture2 ?

    Autrement dans les parametres de cette procedure tu demandes un type LectureGestionDossier seulement quand appels-tu la class qui porte le meme nom dans ta class essai ?

    Je ne suis pas specialement doué en Java mais mon stage se termine aujourd'hui et j'essaye de t'aider quand même

    Plus rapide que moi Moufasa ^^ Je comprend mieux sa methode

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 48
    Points : 51
    Points
    51
    Par défaut
    Merci pour vos aides, d'après ta méthode Moufasa sa me donnerait:
    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
    package ProgrammeFinal;
     
    import java.io.*;
     
    public class LectureGestionDossier {
    	private String rligneUrlDossier="";
     
    	// On le lit
    	 void lecture() {
    		String source = "GestionDossier.txt";
    		try {
     
    			String ligne="", rligneUrlDossier = "", rligneNomDossier = "";
    			BufferedReader fichier = new BufferedReader(new FileReader(source));
     
    			while ((ligne = fichier.readLine()) != null) {
    				rligneUrlDossier = ligne.substring(0, (ligne.indexOf("*")));
    				rligneNomDossier = ligne.substring((ligne.indexOf("*") + 1),
    						ligne.length());
    				System.out.println("Url du dossier: " + rligneUrlDossier);
    				System.out.println("Nom du dossier: " + rligneNomDossier);
     
    			}
    			// On referme
    			fichier.close();
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    	    public String getRrligneUrlDossier() {
    	        return rligneUrlDossier;
     
    }
    	    public void main(String[] args){
    			 lecture();
    			}
    }
    Sa me retourne "IWAV0048I Java Bean ProgrammeFinal.LectureGestionDossier started with null constructor"
    Une idée?

    Petite question supplémentaire:

    Voici le contenu de mon fichier texte en question:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    C:\Windows\*Systeme
    C:\Essai\*Essai
    D:\sfsdgf\*hehe
    c:\divX*osta
    Ma variable rligneUrlDossier récupère C:\Windows\ puis C:\Essai\, etc... pour intégrer ces différents paramètres dans l'autre class, ou dois-je faire apparaitre la boucle?

  5. #5
    Membre du Club
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 40
    Points : 42
    Points
    42
    Par défaut
    Oui le nom de la classe que tu a créé s'appelle :

    LectureGestionDossier

    Hors le constructeur par défaut doit porter le même nom que ta classe donc il faut que tu lui change le nom de constructeur. Hors pour le moment tu n'a pas de constructeur pour l classe donc tu a deux choix:

    1) tu met un constructeur qui ne fait rien dans la classe:

    void LectureGestionDossier (){}

    2) Tu change le nom de ta fonction Lecture() en LectureGestionDossier () et la tu dit que ton constructeur de ta classe Fera le traitement directement.



    _______________________________________________________
    Pour la question supplémentaire :
    Si je comprend bien tu veu pouvoir accédé a ces vaariables dans une autre classe.

    Personnellement je ferais un Vector<String> vLu = new Vector<String>();
    qui contiendrais les différentes lignes de ton fichier. Après même chose que pour le nom, tu fait un get pour le vecteur du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public Vector<String> getVector()
    {
         return vLu;
    }
    et ensuite tu peu accédé à partir de la classe appelante au différentes string contenue dans ton vector.


    Voilà j'espère que ca t'a aider...

    Moufa

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 48
    Points : 51
    Points
    51
    Par défaut
    Excellente idée ! Toute marche a merveille !


    Merci !

  7. #7
    Membre du Club
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 40
    Points : 42
    Points
    42
    Par défaut
    de rien c'est avec plaisir.

    Merci d'avoir dit si ca t'avais aider ou pas...

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

Discussions similaires

  1. [1.x] Appel vers une autre class
    Par lordlifen dans le forum Symfony
    Réponses: 1
    Dernier message: 23/08/2010, 17h18
  2. [Evènement] Comment faire l'appel d'un évènement provenant d'une autre classe ?
    Par Anto03 dans le forum Windows Presentation Foundation
    Réponses: 12
    Dernier message: 06/10/2008, 10h05
  3. creation de fonction et appel via une autre classe
    Par oceane751 dans le forum Langage
    Réponses: 3
    Dernier message: 21/01/2008, 23h26
  4. faire appel a un object d'une autre classe
    Par even_s dans le forum C#
    Réponses: 3
    Dernier message: 14/12/2007, 12h47
  5. GC appel depuis une autre classe
    Par dark2 dans le forum SWT/JFace
    Réponses: 3
    Dernier message: 09/06/2006, 05h53

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