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

AWT/Swing Java Discussion :

Mon set doit changer le chemin à un fichier mais ça a pas l'air de marcher


Sujet :

AWT/Swing Java

  1. #1
    Membre régulier Avatar de poulette3000
    Profil pro
    Inscrit en
    Août 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 183
    Points : 73
    Points
    73
    Par défaut Mon set doit changer le chemin à un fichier mais ça a pas l'air de marcher
    Salut,

    J'ai crée une JFrame dans laquelle l'utilisateur entre le path dans lequel ces fichiers seront sauvegardés.

    Ca fait appel à un JTextField (membre de la classe boiteDeDialogue) et d'un bouton valider (membre aussi)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public class BoiteDeDialogue extends JFrame implements ActionListener, Multilangue{
    ....
            private EcrireFichierTexte eft = new EcrireFichierTexte(app);
    	private JTextField tfRep = new JTextField(rp);
            private JButton bValider ;
    ....
    public void actionPerformed(ActionEvent e){
    if (e.getSource()==bValider){
    rp = this.tfRep.getText();//on recupere le contenu du textfield rp pour répertoire
      eft.setRepertoire(rp);
    Et Après j'ai ma classe EcrireFichierTexte ou on recupere le chemin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public void ecrire(AppletPh2 a, String nomF, String texte) {
    	/*DE toute évident le setter ne modifie pas la variable pourtant en mode console
            */
    	this.adresseGlobale= this.repertoire + nomF;
    	System.out.println("Repertoire dans la classe EFT : "+ this.repertoire);
    //et là ça me renvoie toujours l'ancien c à dire C:\\TEMP
    
    try{
    FileWriter fw = new FileWriter(this.adresseGlobale,true);
    System.out.println("AdresseGlobale dans ecrireFichierTexte : "+ this.adresseGlobale);
    BufferedWriter output = new BufferedWriter(fw);
    Si je le change dans la boite de dialogue par exemple en C:\\ ça ne me le modifie pas ( par defaut dans la classe EcrireFichier TExte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private String repertoire "C:\\TEMP\\"
    Pourtant j'ai ça en mode console
    Repertoire dans la classe EFT : C:\TEMP\
    AdresseGlobale dans ecrireFichierTexte : C:\TEMP\CFSTR_sauvg.doc
    Le hic, c que j'utiliser un set pour faire ça et le set n'a pas l'air de changer le chemin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public void setRepertoire(String rp){this.repertoire = rp; System.out.println("Repertoire dans setter de EFT : "+this.repertoire);}
    Merci

  2. #2
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    Donc tu n'as pas le message "Repertoire dans setter de EFT ..." dans la console on dirait.
    Tu as bien fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    bValider.addActionListener(this);
    quelquepart ?

  3. #3
    Membre régulier Avatar de poulette3000
    Profil pro
    Inscrit en
    Août 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 183
    Points : 73
    Points
    73
    Par défaut
    oui

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    bValider.setLocation(30, 200);
    		bValider.setSize(150,20);
    		bValider.addActionListener(this);
    et la fonction associée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
      public void actionPerformed(ActionEvent e){
        	if (e.getSource()==bValider){
        		tfEntier = this.tfPeriode.getText();
        		tfTexte = this.tfTitreFichier.getText();
        		rp = this.tfRep.getText();
        		this.eft.setNomFichier(tfTexte);
        	    demarrage = true ; 
        	    eft.setRepertoire(rp);
        	    System.out.println("Repertoire dans BDD : "+ this.rp);
        	   System.out.println("AdresseGlobale dans BDD : "+ this.rp+ this.tfTexte);
        	}
     
        }

  4. #4
    Membre régulier Avatar de poulette3000
    Profil pro
    Inscrit en
    Août 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 183
    Points : 73
    Points
    73
    Par défaut
    aussi j'ai bien ça dans la console
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Repertoire dans setter de EFT : C:\\
    comme quoi il a bien vu le nouveau répertoire mais après ça retourne à l'ancien c trop bizarre

  5. #5
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    Quand et comment est appelée la méthode écrire ?

  6. #6
    Membre régulier Avatar de poulette3000
    Profil pro
    Inscrit en
    Août 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 183
    Points : 73
    Points
    73
    Par défaut
    Classe EcrireFichierTexte
    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
     
    public void ecrire(AppletPh2 a, String nomF, String texte) {
    	this.adresseGlobale= this.repertoire + nomF;
    	System.out.println("Repertoire dans la classe EFT : "+ this.repertoire);
    	//System.out.println(app.getFenetrePrincipale().retourneBDD());
    	//this.adresseGlobale= _bdd.getRepertoire() + nomF;
    try{
     
    //	adresseGlobale = this.repertoire + this.nomFichier1 ;
    FileWriter fw = new FileWriter(this.adresseGlobale,true); // true permet d'accumuler les écritures dans le fichier txt
    System.out.println("AdresseGlobale dans ecrireFichierTexte : "+ this.adresseGlobale);
    BufferedWriter output = new BufferedWriter(fw); 
    output.write(texte);
    output.flush();
     
    }catch(IOException ioe){
    System.out.println("erreur : " + ioe );
    	}
    }
    et voici comme elle est appelée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	private FonctionEcriture texte;
    et là c ma fonction Ecrire surDisque qui fait appel à ecrire, c dans la classe FonctionEcriture
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    public void EcrireSurDisque(AppletPh2 app){
    		applet=app;
    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
     
    eft.ecrire(applet,applet.getFenetrePrincipale().retourneTitreFichierBDD()+".doc","Cuve "+tabNomCuves[j-2]+"  QN=" + app.getFenetrePrincipale().renvoieQNparCuve(j-this.miniNumCuve)+"\n");
    			eft.ecrire(applet,applet.getFenetrePrincipale().retourneTitreFichierBDD()+".doc","Acide Ecart="+ applet.getFenetrePrincipale().retourneEcartA(j)+ "  \n");
    			eft.ecrire(applet,applet.getFenetrePrincipale().retourneTitreFichierBDD()+".doc","Basique Ecart="+ applet.getFenetrePrincipale().retourneEcartB(j)+ "  \n");
    			eft.ecrire(applet,applet.getFenetrePrincipale().retourneTitreFichierBDD()+".doc","Acide pH Consigne="+ applet.getFenetrePrincipale().retournePHConsigneA(j)+" \n");
    			eft.ecrire(applet,applet.getFenetrePrincipale().retourneTitreFichierBDD()+".doc","Basique pH Consigne="+ applet.getFenetrePrincipale().retournePHConsigneB(j)+" \n");
    			eft.ecrire(applet,applet.getFenetrePrincipale().retourneTitreFichierBDD()+".doc","~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");		
    	}
    		   System.out.println("dans fonction ecriture : " +applet.getFenetrePrincipale().retourneTitreFichierBDD()+".doc");
    		eft.ecrire(applet,applet.getFenetrePrincipale().retourneTitreFichierBDD()+".doc","Acide nbr o/f pompe : "+ applet.getFenetrePrincipale().retourneNBofPompeA()+" \n");
    		eft.ecrire(applet,applet.getFenetrePrincipale().retourneTitreFichierBDD()+".doc","Base nbr o/f pompe : "+ applet.getFenetrePrincipale().retourneNBofPompeB()+" \n");
    		eft.ecrire(applet,applet.getFenetrePrincipale().retourneTitreFichierBDD()+".doc","Acide : "+applet.getFenetrePrincipale().retourneFormulePompeA() +" Moyenne par heure : "+ applet.getFenetrePrincipale().retourneMoyPompeA()+" \n");
    		eft.ecrire(applet,applet.getFenetrePrincipale().retourneTitreFichierBDD()+".doc","Base : "+applet.getFenetrePrincipale().retourneFormulePompeB() +" Moyenne par heure : "+ applet.getFenetrePrincipale().retourneMoyPompeB()+" \n");
    		eft.ecrire(applet,applet.getFenetrePrincipale().retourneTitreFichierBDD()+".doc","********************"+ applet.getFenetrePrincipale().retournePeriodeBDD() +" seconde(s) plus tard ***********************\n");
    	//	System.out.println("voici l'adresse de ton fichier "+this.getAdresse());
    	}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if ( (heureDepartPas/1000) % periodeBDD ==0 && msec<=600 && msec>=450)
    {texte.EcrireSurDisque(applet);
    }

  7. #7
    Membre régulier Avatar de poulette3000
    Profil pro
    Inscrit en
    Août 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 183
    Points : 73
    Points
    73
    Par défaut
    à mon avis j'ai crée plusieurs instances EcrireFichierTexte ! mais j'en suis pas sur
    Imaginons qu'il y ait un seul objet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private AppletPh2 applet;
    Si je crée plusieurs objets EcrireFichierTexte dans differentes parties de mon code,
    mais à chaque fois je le ou les crée comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    private AppletPh2 applet ;
    private eft = new EcrireFichierTexte(applet);
    Est ce Que les eft pointe vers un meme objet ou vers plusieurs objets eft ?

  8. #8
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    Clairement plusieurs différents .... Et effectivement ça expliquerait le problème

  9. #9
    Membre régulier Avatar de poulette3000
    Profil pro
    Inscrit en
    Août 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 183
    Points : 73
    Points
    73
    Par défaut
    re

    Cette fois j'ai tout centralisé dans une classe Fenetre principale (enfin les EFT)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    private AppletPh2 applet;
    private BoiteDeDialogue _bdd = new BoiteDeDialogue(this.applet); 
    private EcrireFichierTexte eft = new EcrireFichierTexte(this.applet);
    mais pourtant j'ai un NullPointer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public BoiteDeDialogue(AppletPh2 applet){
    app=applet;
    eft= app.getFenetrePrincipale().retourneEcrFichierTexte();
    pourtant j'ai bien defini comme il faut EcrireFichierTexte dans FenetrePrincipale

    Je comprends pas comment quoi que ce soit puisse etre nul ?

  10. #10
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    Ben quand tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    private AppletPh2 applet;
    private BoiteDeDialogue _bdd = new BoiteDeDialogue(this.applet); 
    private EcrireFichierTexte eft = new EcrireFichierTexte(this.applet);
    tout est exécuté à la suite, donc this.applet est null à ce moment là ...

    D'où une bonne pratique qui est de ne jamais initialiser les attributs à la déclaration ...

  11. #11
    Membre régulier Avatar de poulette3000
    Profil pro
    Inscrit en
    Août 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 183
    Points : 73
    Points
    73
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public class BoiteDeDialogue extends JFrame implements ActionListener, Multilangue{
    	
    	private static final long serialVersionUID = 1L;
    	private AppletPh2 app;
    	// 
    	private EcrireFichierTexte eft ; 
    	private JPanel fond=new JPanel(null);
    	private int periodeBDD;
    
    	public BoiteDeDialogue(AppletPh2 applet){
    		app=applet;
    		eft =  app.getFenetrePrincipale().retourneEcrFichierTexte();
    J'ai toujours du null pour la derniere ligne !!

  12. #12
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Quand tu dis tu as toujours du null:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    eft = app.getFenetrePrincipale().retourneEcrFichierTexte();
    Tu veux dire que eft == null, ou que tu as un NullPointerException?

    Si tu as un NullPointerException, tu as 2 possibilités:
    -soit app est null
    -soit app.getFenetrePrincipale() est null

    Sinon c'est que retourneEcrFichierText() renvoie null...

  13. #13
    Membre régulier Avatar de poulette3000
    Profil pro
    Inscrit en
    Août 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 183
    Points : 73
    Points
    73
    Par défaut
    c un NullPointerException!
    mais rien ne devrait etre nul ! tout a dejà eté defini !!

  14. #14
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Citation Envoyé par poulette3000
    c un NullPointerException!
    mais rien ne devrait etre nul ! tout a dejà eté defini !!
    Il y en a un des 2 manifestement qui est null... Affiche ces 2 valeurs avec des System.out et regarde lequel est null... Et après bah tu trouveras pourquoi il est null

  15. #15
    Membre régulier Avatar de poulette3000
    Profil pro
    Inscrit en
    Août 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 183
    Points : 73
    Points
    73
    Par défaut
    app.getFenetrePrincipale() c celui la

  16. #16
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    Ben en même temps on a pas tout le code pour suivre les initialisations ....

  17. #17
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    Citation Envoyé par poulette3000
    app.getFenetrePrincipale() c celui la
    OK, donc t'as trouvé !

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

Discussions similaires

  1. Changer le chemin du fichier de configuration en C#
    Par DeltaSM dans le forum Framework .NET
    Réponses: 7
    Dernier message: 07/11/2011, 15h15
  2. [OpenOffice] [OOo] Changer dynamiquement le chemin du fichier XSLT d'un filtre XML ?
    Par ludo00002 dans le forum OpenOffice & LibreOffice
    Réponses: 0
    Dernier message: 18/03/2009, 19h19
  3. Changer le chemin du fichier raccouris de sécurité
    Par JohnBrown011 dans le forum Sécurité
    Réponses: 1
    Dernier message: 26/05/2008, 14h14
  4. Rafraichir une animation pour changer le chemin d'un fichier externe
    Par nicolas2603 dans le forum ActionScript 1 & ActionScript 2
    Réponses: 9
    Dernier message: 25/01/2008, 13h07
  5. Réponses: 5
    Dernier message: 03/03/2006, 16h17

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