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 :

Problème de codage


Sujet :

AWT/Swing Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 26
    Points : 14
    Points
    14
    Par défaut Problème de codage
    Bonjour, je en bts en alternance et dans mon entreprise je commence à développez en java. Pour mon premier programme j'ai essayé de faire un petit programme qui enregistre le mot de passe d'un pc lorsqu'on le change. (On le rentre dans le programme et un fichier txt est sauvegarder sur un lecteur réseau mapper).
    Le problème c'est que mon code ne compile pas.
    Je vous le met
    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
     
    import java.awt.Dimension;
    import java.awt.FlowLayout;
    import java.awt.event.*;
    import java.io.*;
    import java.io.BufferedWriter;
    import java.io.FileNotFoundException;
    import java.io.FileWriter;
    import java.io.IOException;
    import javax.swing.*;
     
     
    public class FenetreSaisie extends JFrame implements ActionListener
    {
    	private JPanel container = null;//Déclaration de l’objet JPanel	
    	private FlowLayout layout = null ;//Déclaration de notre layout
    	private JLabel texte = null;
    	private JButton validate = null ;
    	private JButton exit = null;
    	private JTextField newpassword = null;
    	public String password;
     
    	private FenetreSaisie()
    	{
    		super();
    		build();
    		fichier();
    	}
    	public static void main(String[] args)
    	{
    		FenetreSaisie gui = new FenetreSaisie();
    		gui.setVisible(true);
    	}
    	private void build(){
    		this.setTitle("New password");
    		this.setSize(350,150);
    		this.setLocationRelativeTo(null); //On centre la fenêtre sur l’écran
    		this.setResizable(false) ;
    		this.setContentPane(getContainer()) ;//On lui dit de mettre le panel en fond
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    	}
    	private JPanel getContainer()
    	{
    		layout = new FlowLayout() ; //Instanciation du layout
    		layout.setAlignment(FlowLayout.LEFT) ;
     
    		container = new JPanel() ;
    		container.setLayout(layout);
     
    		texte =new JLabel("Si vous avez modifiez le mot de passe réentrez le");
    		texte.setPreferredSize(new Dimension(400,25));
    		container.add(texte);
     
    		newpassword = new JTextField();
    		newpassword.setPreferredSize(new Dimension(300,25));
    		container.add(newpassword);
    		password = newpassword.getText();
     
    		validate = new JButton("Valider");
    		validate.setPreferredSize(new Dimension(125,25));
    		validate.addActionListener(this) ;
    		container.add(validate);
     
    		exit = new JButton("Quitter");
    		exit.setPreferredSize(new Dimension(125,25));
    		exit.addActionListener(this);
    		container.add(exit);
     
    		return container ;
    	}
    	public void actionPerformed(ActionEvent e)
    	{	
    		if(e.getSource()==validate)
    		{
    			public void fichier()
    			{		
    					BufferedWriter out = new BufferedWriter(new FileWriter("c:\\Password.txt"));
    					String s = "Mot de passe de la Build Machine";
    					out.write(s);
    					out.newLine();
    					s = password;
    					out.write(s);
    					out.close();							
    			}
    			System.exit(0);
    		}
    		if(e.getSource()==exit)
    		{	
    			System.exit(0);
    		}
    	}
    }
    Eclipse me souligne 2 parties de mon code
    fichier(); et public void fichier()
    Pourriez vous me donner un conseil svp?
    Merci d'avance

  2. #2
    Membre averti Avatar de supernova
    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    447
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 447
    Points : 415
    Points
    415
    Par défaut
    Salut,

    Tu as un pb de syntaxe dans ta méthode actionPerformed: il manque des parenthèses à vue d'oeil..

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 26
    Points : 14
    Points
    14
    Par défaut
    Tout d'abord merci pour ta réponse.
    J'ai regardé ton conseil mais j'ai pas trouvé ou il manquait des parenthèses

  4. #4
    Membre éclairé Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Points : 672
    Points
    672
    Par défaut
    Tout d'abord, bonjour,

    Essaye deja ca, je sais pas si ca fera exactement ce que tu voulais mais deja ca compilera

    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
    import java.awt.Dimension;
    import java.awt.FlowLayout;
    import java.awt.event.*;
    import java.io.*;
    import java.io.BufferedWriter;
    import java.io.FileNotFoundException;
    import java.io.FileWriter;
    import java.io.IOException;
    import javax.swing.*;
     
     
    public class FenetreSaisie extends JFrame implements ActionListener
    {
        private JPanel container = null;//Déclaration de l’objet JPanel    
        private FlowLayout layout = null ;//Déclaration de notre layout
        private JLabel texte = null;
        private JButton validate = null ;
        private JButton exit = null;
        private JTextField newpassword = null;
        public String password;
     
        private FenetreSaisie() throws IOException
        {
            super();
            build();
            fichier();
        }
     
        public void fichier() throws IOException
        {        
                BufferedWriter out = new BufferedWriter(new FileWriter("c:\\Password.txt"));
                String s = "Mot de passe de la Build Machine";
                out.write(s);
                out.newLine();
                out.write(password);
                out.close();                            
        }
     
        public static void main(String[] args) throws IOException
        {
            FenetreSaisie gui = new FenetreSaisie();
            gui.setVisible(true);
        }
        private void build(){
            this.setTitle("New password");
            this.setSize(350,150);
            this.setLocationRelativeTo(null); //On centre la fenêtre sur l’écran
            this.setResizable(false) ;
            this.setContentPane(getContainer()) ;//On lui dit de mettre le panel en fond
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
        }
        private JPanel getContainer()
        {
            layout = new FlowLayout() ; //Instanciation du layout
            layout.setAlignment(FlowLayout.LEFT) ;
     
            container = new JPanel() ;
            container.setLayout(layout);
     
            texte =new JLabel("Si vous avez modifiez le mot de passe réentrez le");
            texte.setPreferredSize(new Dimension(400,25));
            container.add(texte);
     
            newpassword = new JTextField();
            newpassword.setPreferredSize(new Dimension(300,25));
            container.add(newpassword);
            password = newpassword.getText();
     
            validate = new JButton("Valider");
            validate.setPreferredSize(new Dimension(125,25));
            validate.addActionListener(this) ;
            container.add(validate);
     
            exit = new JButton("Quitter");
            exit.setPreferredSize(new Dimension(125,25));
            exit.addActionListener(this);
            container.add(exit);
     
            return container ;
        }
        public void actionPerformed(ActionEvent e)
        {    
            if(e.getSource()==validate)
            {
                try {
                    fichier();
                } catch (IOException e1) {
                    e1.printStackTrace();
                }
                System.exit(0);
            }
            if(e.getSource()==exit)
            {    
                System.exit(0);
            }
        }
    }
    Ce que tu avais fait dans ton programme, c'est que tu declarais une fonction dans une autre fonction, d'instint, je te dirais que CA SE FAIT PAS EN JAVA, parce que je l'ai jamais vu avant (mais je peux me tromper)

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 26
    Points : 14
    Points
    14
    Par défaut
    Ok merci pour ton aide,
    ça compile en effet, et je viens de me rendre compte en lisant ce que tu m'a corrigé que ça se passait comme en C avec les fonctions (en à pas encore commencé le C++ en cours...).
    Par contre j'ai un autre problème c'est que je récupère le contenu de mon JTextField dans une string mais je n'arrive pas à l'afficher dans mon fichier txt qui est généré. Je pense que au lieu d'utilisé mon getText() comme j'ai fait (et que visiblement je n'arrive pas à utiliser ) je devrais utiliser un actionlistener qui entrerait dans ma variable password le contenu du JTextField.
    Le problème c'est que je sais pas quel actionlistener utilisé et je sais pas non plus comment mettre ça en oeuvre...

  6. #6
    Membre confirmé Avatar de Jabbal'H
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 403
    Points : 580
    Points
    580
    Par défaut
    c'est pas plutot dans ton actionPerformed que tu devrais mettre le cont-enus du JTextField dans ta variable password.

    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
        public void actionPerformed(ActionEvent e)
        {    
            if(e.getSource()==validate)
            {
                try {
                    password = newpassword.getText();
                    fichier();
                } catch (IOException e1) {
                    e1.printStackTrace();
                }
                System.exit(0);
            }
            if(e.getSource()==exit)
            {    
                System.exit(0);
            }
        }
    Dans ce style là ?
    En plus tu lance la methode fichier dans ton constructeur, donc avant que le champs soit remplit par l'utilisateur, c'est normal cà ?

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 26
    Points : 14
    Points
    14
    Par défaut
    ça marche, j'arrive à enregistrer le contenu du JTextField dans mon .txt.
    Par contre si je change pas le mot de passe et que je met quitter directement il me change mon fichier txt et remplace le password par du blanc (vue que rien n'a été entré...)
    Une petite idée?

    Merci beaucoup à tous pour votre aide

  8. #8
    Membre confirmé Avatar de Jabbal'H
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 403
    Points : 580
    Points
    580
    Par défaut
    t'as bien enlevé la mathode fichier(); dans ton constructeur ?
    Sinon redonne la code si t'as fait des modifs

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 26
    Points : 14
    Points
    14
    Par défaut
    En effet j'avais oublié d'enlever fichier()
    Mon code au final donne ça.
    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
     
    import java.awt.Dimension;
    import java.awt.FlowLayout;
    import java.awt.event.*;
    import java.io.BufferedWriter;
    import java.io.FileWriter;
    import java.io.IOException;
    import javax.swing.*;
     
     
    public class FenetreSaisie extends JFrame implements ActionListener
    {
        private JPanel container = null;//Déclaration de l’objet JPanel    
        private FlowLayout layout = null ;//Déclaration de notre layout
        private JLabel texte = null;
        private JButton validate = null ;
        private JButton exit = null;
        private JTextField newpassword = null;
        public String password;
        private JLabel image = new JLabel(new ImageIcon("C:/Password Archivage/Goss-banner.jpg"));
     
        private FenetreSaisie() throws IOException
        {
            super();
            build();
        }
     
        public static void main(String[] args) throws IOException
        {
            FenetreSaisie gui = new FenetreSaisie();
            gui.setVisible(true);
        }
        private void build(){
            this.setTitle("Archivage du mot de passe");
            this.setSize(520,200);
            this.setLocationRelativeTo(null); //On centre la fenêtre sur l’écran
            this.setResizable(false) ;
            this.setContentPane(getContainer()) ;//On lui dit de mettre le panel en fond
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
        }
        private JPanel getContainer()
        {
            layout = new FlowLayout() ; //Instanciation du layout
            layout.setAlignment(FlowLayout.LEFT) ;
     
            container = new JPanel() ;
            container.setLayout(layout);
     
            container.add(image);
     
            texte =new JLabel("Merci de ressaisir le mot de passe pour archivage");
            texte.setPreferredSize(new Dimension(520,25));
            container.add(texte);
     
            newpassword = new JTextField();
            newpassword.setPreferredSize(new Dimension(380,25));
            container.add(newpassword);
            password = newpassword.getText();
     
            validate = new JButton("Valider");
            validate.setPreferredSize(new Dimension(125,25));
            validate.addActionListener(this) ;
            container.add(validate);
     
            exit = new JButton("Quitter");
            exit.setPreferredSize(new Dimension(125,25));
            exit.addActionListener(this) ;
            container.add(exit);
     
            return container ;
        }
        public void fichier() throws IOException
        {          	
                BufferedWriter out = new BufferedWriter(new FileWriter("//10.58.114.24/DOCLAND/Workflow/Hardware_Backup PC Workflow/Ghost/PC Build Machine/Password.txt"));
                String s = "Mot de passe actuel de la Build Machine:";
                out.write(s);
                out.newLine();
                out.write(password);
                out.close();      
        }
        public void actionPerformed(ActionEvent e)
        {    
            if(e.getSource()==validate)
            {
                try 
                {
                	password = newpassword.getText();
                    fichier();
                } catch (IOException e1) {
                    e1.printStackTrace();
                }
                System.exit(0);
            }
            if(e.getSource()==exit)
            {
            	System.exit(0);
            }
     
        }
    }
    Le fichier password.txt est créer sur un des pc du réseau de ma boite. Le pc est en fait utilisé par toute mon équipe (une dixaine de personnes), et on est obligé de changer le password toutes les 2semaines pour sécurité... Donc c'est un moyen plus simple de ne pas être embêter quand certains sont en déplacement.
    Merci beaucoup pour votre aide

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

Discussions similaires

  1. Problème de codage de caractère
    Par HwRZxLc4 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 08/02/2007, 14h27
  2. Problème de codage en HTML
    Par liazidf dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 23/01/2007, 14h11
  3. Problème de codage de caractères depuis l'import
    Par compu dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 22/03/2006, 08h37
  4. Réponses: 9
    Dernier message: 04/03/2005, 13h58
  5. [Accents - XML] Problème de codage non supporté !!
    Par Smortex dans le forum Composants VCL
    Réponses: 6
    Dernier message: 24/11/2002, 11h00

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