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 de JTextField


Sujet :

Composants Java

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2013
    Messages : 13
    Points : 4
    Points
    4
    Par défaut Problème de JTextField
    Bonsoir,
    J'ai une interface en java swing qui demande à l'utilisateur son nom, son mot de passe et son Num CCp dans un JTextField et des JPasswordField. et un Jbutton "se connecter" mon problème est comment vérifier si tout les champs JTextField sont remplies
    si je dois utiliser le Actionlistener, le listener est déclarée dans l'interface ou bien dans l'autre classe qui récupérer les valeurs des champs?
    voici ci-dessus le code de l'interface Session

    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
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
     package org.swng.test;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
     
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPasswordField;
    import javax.swing.JTextField;
    import javax.swing.SwingUtilities;
    import javax.swing.UIManager;
    import javax.swing.event.*;
     
     
    import org.dyno.visual.swing.layouts.Constraints;
    import org.dyno.visual.swing.layouts.GroupLayout;
    import org.dyno.visual.swing.layouts.Leading;
    public class Session extends JFrame implements ActionListener {
     
    	private static final long serialVersionUID = 1L;
    	public JLabel jLabel0;
    	private JTextField jTextField0;
    	private JButton jButton1;
    	private JButton jButton0;
    	private JLabel jLabel2;
    	private JLabel jLabel3;
    	private JTextField jTextField2;
    	private JLabel jLabel1;
    	private JPasswordField jPasswordField0;
    	private static final String PREFERRED_LOOK_AND_FEEL = "javax.swing.plaf.metal.MetalLookAndFeel";
    	public Session() {
    		initComponents();
    	}
     
     
     
    	private JPasswordField getJPasswordField0() {
    		if (jPasswordField0 == null) {
    			jPasswordField0 = new JPasswordField();
    			jPasswordField0.setText("jPasswordField0");
    			jPasswordField0.setEchoChar('•');
    		}
    		return jPasswordField0;
    	}
     
    	private JLabel getJLabel1() {
    		if (jLabel1 == null) {
    			jLabel1 = new JLabel();
    			jLabel1.setText(Mot de passe);
    		}
    		return jLabel1;
    	}
     
    	private JTextField getJTextField2() {
    		if (jTextField2 == null) {
    			jTextField2 = new JTextField();
    		}
    		return jTextField2;
    	}
     
    	private JLabel getJLabel3() {
    		if (jLabel3 == null) {
    			jLabel3 = new JLabel();
    			jLabel3.setText("Num CCP :");
    		}
    		return jLabel3;
    	}
     
    	private JButton getJButton0() {
    		if (jButton0 == null) {
    			jButton0 = new JButton();
    			jButton0.setText("Se connecter");
    		}
    		return jButton0;
    	}
     
     
    	private JTextField getJTextField0() {
    		if (jTextField0 == null) {
    			jTextField0 = new JTextField();
    		}
    		return jTextField0;
    	}
     
    	private JLabel getJLabel0() {
    		if (jLabel0 == null) {
    			jLabel0 = new JLabel();
    			jLabel0.setText("nom utilisateur :");
    		}
    		return jLabel0;
    	}
     
    	private static void installLnF() {
    		try {
    			String lnfClassname = PREFERRED_LOOK_AND_FEEL;
    			if (lnfClassname == null)
    				lnfClassname = UIManager.getCrossPlatformLookAndFeelClassName();
    			UIManager.setLookAndFeel(lnfClassname);
    		} catch (Exception e) {
    			System.err.println("Cannot install " + PREFERRED_LOOK_AND_FEEL
    					+ " on this platform:" + e.getMessage());
    		}
    	}
     
     
    	public static void main(String[] args) {
    		installLnF();
    		SwingUtilities.invokeLater(new Runnable() {
    			@Override
    			public void run() {
    				Session frame = new Session();
    				frame.setDefaultCloseOperation(Session.EXIT_ON_CLOSE);
    				frame.setTitle("Session");
    				frame.getContentPane().setPreferredSize(frame.getSize());
    				frame.pack();
    				frame.setLocationRelativeTo(null);
    				frame.setVisible(true);
    			}
    		});
    	}
     
    	{
    	}
     
    }
    Fichiers attachés Fichiers attachés

  2. #2
    Membre averti
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juillet 2013
    Messages
    269
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 269
    Points : 434
    Points
    434
    Par défaut
    Bonjour,
    Je n'ai pas regardé en détail le code mais en réponse rapide pourquoi ne pas simplement ajouter un ActionListener sur le bouton connexion et effectuer les contrôle de tes textfield dedans ?
    Un truc simple du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    jButton0.addActionListener(new ActionListener() {	
      @Override
      public void actionPerformed(ActionEvent e) {
        if (jTextField0.getText().length() > 0 && ...)
          // c'est bon
        else
          // ce n'est pas bon
      }
    });

  3. #3
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2013
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    le truc fonctionne seulement avec le premier champs , je pense que je dois utiliser une boucle pour vérifier tout les champs: nom utilisateur, Num CCp et le mot de passe si l'un des champs est vide un message d'erreur est affiché et
    si tout les champs sont remplies donc je dois afficher ma deuxième interface comme résultat
    voici le code de la deuxième interface :
    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
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
     
    package org.swng.test;
     
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JTextField;
    import javax.swing.SwingUtilities;
    import javax.swing.UIManager;
     
    import org.dyno.visual.swing.layouts.Constraints;
    import org.dyno.visual.swing.layouts.GroupLayout;
    import org.dyno.visual.swing.layouts.Leading;
     
    //VS4E -- DO NOT REMOVE THIS LINE!
    public class Compte_client extends JFrame {
     
    	private static final long serialVersionUID = 1L;
    	private JLabel jLabel2;
    	private JTextField jTextField2;
    	private JTextField jTextField1;
    	private JLabel jLabel1;
    	private JLabel jLabel0;
    	private JTextField jTextField0;
    	private JLabel jLabel3;
    	private JButton jButton1;
    	private JButton jButton0;
    	private static final String PREFERRED_LOOK_AND_FEEL = "javax.swing.plaf.metal.MetalLookAndFeel";
    	public Compte_client() {
    		initComponents();
    		setTitle ("compte client");
    	}
     
    	private void initComponents() {
    		setTitle("compte client");
    		setLayout(new GroupLayout());
    		add(getJLabel3(), new Constraints(new Leading(142, 10, 10), new Leading(7, 12, 12)));
    		add(getJButton0(), new Constraints(new Leading(301, 71, 10, 10), new Leading(117, 20, 12, 12)));
    		add(getJButton1(), new Constraints(new Leading(301, 70, 12, 12), new Leading(158, 22, 12, 12)));
    		add(getJTextField1(), new Constraints(new Leading(140, 116, 10, 10), new Leading(114, 26, 12, 12)));
    		add(getJTextField2(), new Constraints(new Leading(140, 116, 12, 12), new Leading(158, 25, 12, 12)));
    		add(getJLabel1(), new Constraints(new Leading(12, 12, 12), new Leading(121, 12, 12)));
    		add(getJLabel2(), new Constraints(new Leading(10, 10, 10), new Leading(161, 19, 12, 12)));
    		add(getJLabel0(), new Constraints(new Leading(12, 12, 12), new Leading(70, 12, 12)));
    		add(getJTextField0(), new Constraints(new Leading(117, 158, 10, 10), new Leading(64, 27, 12, 12)));
    		setSize(441, 207);
    	}
     
    	private JButton getJButton0() {
    		if (jButton0 == null) {
    			jButton0 = new JButton();
    			jButton0.setText("retirer");
    		}
    		return jButton0;
    	}
     
    	private JButton getJButton1() {
    		if (jButton1 == null) {
    			jButton1 = new JButton();
    			jButton1.setText("dépôt");
    		}
    		return jButton1;
    	}
     
    	private JLabel getJLabel3() {
    		if (jLabel3 == null) {
    			jLabel3 = new JLabel();
    			jLabel3.setText("<HTML><FONT face= Vivaldi size= 8 color= #0000CD ><G><I>Cher client</FONT></HTML>");
    		}
    		return jLabel3;
    	}
     
    	private JTextField getJTextField0() {
    		if (jTextField0 == null) {
    			jTextField0 = new JTextField();
    		}
    		return jTextField0;
    	}
     
    	private JLabel getJLabel0() {
    		if (jLabel0 == null) {
    			jLabel0 = new JLabel();
    			jLabel0.setText("votre solde :");
    		}
    		return jLabel0;
    	}
     
    	private JLabel getJLabel1() {
    		if (jLabel1 == null) {
    			jLabel1 = new JLabel();
    			jLabel1.setText("Montant à retirer :");
    		}
    		return jLabel1;
    	}
     
    	private JTextField getJTextField1() {
    		if (jTextField1 == null) {
    			jTextField1 = new JTextField();
    		}
    		return jTextField1;
    	}
     
    	private JTextField getJTextField2() {
    		if (jTextField2 == null) {
    			jTextField2 = new JTextField();
    		}
    		return jTextField2;
    	}
     
    	private JLabel getJLabel2() {
    		if (jLabel2 == null) {
    			jLabel2 = new JLabel();
    			jLabel2.setText("montant à dépôt :");
    		}
    		return jLabel2;
    	}
     
    	private static void installLnF() {
    		try {
    			String lnfClassname = PREFERRED_LOOK_AND_FEEL;
    			if (lnfClassname == null)
    				lnfClassname = UIManager.getCrossPlatformLookAndFeelClassName();
    			UIManager.setLookAndFeel(lnfClassname);
    		} catch (Exception e) {
    			System.err.println("Cannot install " + PREFERRED_LOOK_AND_FEEL
    					+ " on this platform:" + e.getMessage());
    		}
    	}
    	public static void main(String[] args) {
    		installLnF();
    		SwingUtilities.invokeLater(new Runnable() {
    			@Override
    			public void run() {
    				Compte_client frame = new Compte_client();
    				frame.setDefaultCloseOperation(Compte_client.EXIT_ON_CLOSE);
    				frame.setTitle("Compte_client");
    				frame.getContentPane().setPreferredSize(frame.getSize());
    				frame.pack();
    				frame.setLocationRelativeTo(null);
    				frame.setVisible(true);
    			}
    		});
    	}
     
    }
    je ne sais pas comment faire tout ça

  4. #4
    Membre averti
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juillet 2013
    Messages
    269
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 269
    Points : 434
    Points
    434
    Par défaut
    Citation Envoyé par arena-flor14213 Voir le message
    le truc fonctionne seulement avec le premier champs , je pense que je dois utiliser une boucle pour vérifier tout les champs: nom utilisateur, Num CCp et le mot de passe si l'un des champs est vide un message d'erreur est affiché et
    si tout les champs sont remplies donc je dois afficher ma deuxième interface comme résultat
    En fait tu devrais placer quelque part un JLabel invisible qui contiendra tes messages d'erreur.
    Pour le contrôle de tes champs texte, soit tu souhaites afficher un message général et dans ce cas là tu fais un mega if :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if (jTextField1.getText().length() > 0 && jTextField2.getText().length() > 0 && jTextField0.getText().length() > 0 && .... le reste de tes textfields) {
      labelErreur.setText("");
      labelErreur.setVisible(false);
      // tu peux passer à la suite  
    else {
      labeLErreur.setText("Certains champs ne sont pas remplis");
      labelErreur.setVisible(true);
    }
    ou alors tu les testes à tour de rôle (pas besoin de boucle, tu n'en as pas 50) pour pouvoir afficher un message plus précis, dans ce cas, prévoit également un booléen que tu mettras à false si au moins un des champs n'est pas valide, et c'est lui que tu testeras à la fin pour valider ou pas ton formulaire.

    Citation Envoyé par arena-flor14213 Voir le message
    voici le code de la deuxième interface :


    je ne sais pas comment faire tout ça
    Pour la suite, j'ai du mal à comprendra la cinématique, tu veux appeler une nouvelle JFrame ? Donc une nouvelle fenêtre qui apparaîtra en plus de la précédente ?

  5. #5
    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
    Points : 1 493
    Points
    1 493
    Par défaut
    salut,
    pour faire simple, dans actionPerfomed de ton bouton tu peux vérifier avec ce morceau de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if(txtnom.getText.equals("") || txt2.getText.equals("") || txt3.getText.equals("")){ 
    JOptionPane.showMessageDialog(this,"pas de champ vide svp");} else{//suite  du programme...}
    Il se peut que j'écrive mal une ou autre méthode, ne m'en voulez surtout pas car je répond par mon téléphone ( sans mon éditeur de code avec moi)
    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.

  6. #6
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2013
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par VirgApps Voir le message
    Pour la suite, j'ai du mal à comprendra la cinématique, tu veux appeler une nouvelle JFrame ? Donc une nouvelle fenêtre qui apparaîtra en plus de la précédente ?
    oui je veut appeler une nouvelle JFrame lorsque l'utilisateur rempli tout les champs puis cliquer sur le JButton "connecter"

    je n'arrive pas à trouver la façon dont il faut proceder pour ouvrir une fenetre à partir d'une autre (à l'aide d'un bouton).
    Je voulais savoir aussi si il était possible que lorsque on n'ouvre la fenetre, la précédente se ferme.

    Merci d'avance pour vos aides.



    merci d'avance

  7. #7
    Membre averti
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juillet 2013
    Messages
    269
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 269
    Points : 434
    Points
    434
    Par défaut
    Citation Envoyé par arena-flor14213 Voir le message
    oui je veut appeler une nouvelle JFrame lorsque l'utilisateur rempli tout les champs puis cliquer sur le JButton "connecter"

    je n'arrive pas à trouver la façon dont il faut proceder pour ouvrir une fenetre à partir d'une autre (à l'aide d'un bouton).
    Je voulais savoir aussi si il était possible que lorsque on n'ouvre la fenetre, la précédente se ferme.

    Merci d'avance pour vos aides.



    merci d'avance
    Es tu obligée de procéder ainsi ? Ne peux tu pas garder une JFrame unique qui contiendrait des JPanel, ainsi tu basculerais de l'un à l'autre en restant dans la même fenêtre.
    Tu aurais un JPanel connexion et un autre JPanel qui contiendrais la suite de ton application, ton JFrame les contiendrais tous.
    A la connexion tu fermes la JPanel connexion et tu la remplaces par l'autre JPanel.
    De plus cela resterait plus agréable pour l'utilisateur.

  8. #8
    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
    Points : 1 493
    Points
    1 493
    Par défaut
    Citation Envoyé par arena-flor14213 Voir le message
    oui je veut appeler une nouvelle JFrame lorsque l'utilisateur rempli tout les champs puis cliquer sur le JButton "connecter"

    je n'arrive pas à trouver la façon dont il faut proceder pour ouvrir une fenetre à partir d'une autre (à l'aide d'un bouton).
    Je voulais savoir aussi si il était possible que lorsque on n'ouvre la fenetre, la précédente se ferme.
    Pour ouvrir une nouvelle fenêtre après test des champs, tu peux faire ceci:
    (Bien sûr dans le actionPerfomed de ton bouton)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
            if(jTextField1.getText().equals("")||jTextField2.getText().equals("")||jTextField3.getText().equals(""))
           {
                 JOptionPane.showMessageDialog(this, "pas de vides");
            }
            else
            {
                //Tous les champs remplis, fermer la fenêtre active
                this.dispose();
               //créer une nouvelle instance la ta fenêtre de traitements (chez moi j'appelle ça abara) et l'afficher en même temps
                new abara().setVisible(true);
            }
        }
    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.

  9. #9
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2013
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par MasterMbg Voir le message
    Pour ouvrir une nouvelle fenêtre après test des champs, tu peux faire ceci:
    (Bien sûr dans le actionPerfomed de ton bouton)
    j'ai appliqué le code qui vous ma donné mais il ne fonctionne pas, il existe une erreur dans la
    * la méthode showMessageDialog.
    et une erreur qui me dit que le else n'est invalid operator.

    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
     
     private JButton getJButton0() {
            if (jButton0 == null) {
    	   jButton0 = new JButton();
    	   jButton0.setText("Se connecter");
     
    	       jButton0.addActionListener(new ActionListener(){
    		   public void actionPerformed(ActionEvent e) {
    			if (jTextField0.getText.equals("") || jTextField2.getText.equals("")|| JPasswordField0.getText.equals("") )
    					{
    	JOptionPane.showMessageDialog(this, "pas de champs vide svp");
    		else
    			this.dispose();
    			   new Compte_client().setVisible(true);}
     
    				}
    			}
    			);	
    		}

    Citation Envoyé par VirgApps Voir le message
    Es tu obligée de procéder ainsi ? Ne peux tu pas garder une JFrame unique qui contiendrait des JPanel, ainsi tu basculerais de l'un à l'autre en restant dans la même fenêtre.
    je dois changer la première interface parce que c'est une interface d’authentification et la deuxième interface contient
    3 champs jtextfield contient des valeurs récupérés d'une autre classe .
    merci

  10. #10
    Membre averti Avatar de toutgrego
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2013
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2013
    Messages : 217
    Points : 350
    Points
    350
    Par défaut
    Citation Envoyé par arena-flor14213 Voir le message
    j'ai appliqué le code qui vous ma donné mais il ne fonctionne pas, il existe une erreur dans la
    * la méthode showMessageDialog.
    et une erreur qui me dit que le else n'est invalid operator.

    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
     
     private JButton getJButton0() {
            if (jButton0 == null) {
    	   jButton0 = new JButton();
    	   jButton0.setText("Se connecter");
     
    	       jButton0.addActionListener(new ActionListener(){
    		   public void actionPerformed(ActionEvent e) {
    			if (jTextField0.getText.equals("") || jTextField2.getText.equals("")|| JPasswordField0.getText.equals("") )
    					{
    	JOptionPane.showMessageDialog(this, "pas de champs vide svp");
    		else
    			this.dispose();
    			   new Compte_client().setVisible(true);}
     
    				}
    			}
    			);	
    		}



    je dois changer la première interface parce que c'est une interface d’authentification et la deuxième interface contient
    3 champs jtextfield contient des valeurs récupérés d'une autre classe .
    merci
    Il y a un petit soucis d’accolade
    F*ck it ! Do it !

  11. #11
    Membre averti
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juillet 2013
    Messages
    269
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 269
    Points : 434
    Points
    434
    Par défaut
    Citation Envoyé par arena-flor14213 Voir le message
    je dois changer la première interface parce que c'est une interface d’authentification et la deuxième interface contient
    3 champs jtextfield contient des valeurs récupérés d'une autre classe .
    merci
    Oui c'est ce que j'avais compris mais rien ne t'oblige d'avoir une frame par interface, pourquoi ne pas s'inspirer de ça :
    http://docs.oracle.com/javase/tutori...yout/card.html

  12. #12
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2013
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par MasterMbg Voir le message
    Pour ouvrir une nouvelle fenêtre après test des champs, tu peux faire ceci:
    (Bien sûr dans le actionPerfomed de ton bouton)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
            if(jTextField1.getText().equals("")||jTextField2.getText().equals("")||jTextField3.getText().equals(""))
           {
                 JOptionPane.showMessageDialog(this, "pas de vides");
            }
            else
            {
                //Tous les champs remplis, fermer la fenêtre active
                this.dispose();
               //créer une nouvelle instance la ta fenêtre de traitements (chez moi j'appelle ça abara) et l'afficher en même temps
                new abara().setVisible(true);
            }
        }
    j'applique ce code
    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
     
     private JButton getJButton0() {
            if (jButton0 == null) {
    	   jButton0 = new JButton();
    	   jButton0.setText("Se connecter");
     
    	       jButton0.addActionListener(new ActionListener(){
    		   public void actionPerformed(ActionEvent e) {
    			if (jTextField0.getText.equals("") || jTextField2.getText.equals("")|| JPasswordField0.getText.equals("") )
    					{
    	JOptionPane.showMessageDialog(this, "pas de champs vide svp");
    		else
    			this.dispose();
    			   new Compte_client().setVisible(true);}
     
    				}
    			}}
    			);	
    		}
    Citation Envoyé par toutgrego Voir le message
    Il y a un petit soucis d’accolade
    j'ai appliqué le code autre fois après le corrige de problème d'accolade qui mais il ne fonctionne pas, il existe 3 erreur
    1/ ActionListener(){} must be inherited abstract méthode ActionListener.ActionPerformed(ActionEvent).
    2/ jTextField can not be resolved or not a jtextfield.
    3/ la méthode showMessageDialog is not applicable for the argument (new ActionListener(){},string)

    4/la methode dispose() is undefined for the type new ActionListener(){}.


    j'ai besoin de votre aide pour ce problème, je suit une débutant en java et j'ai essayé de corriger ses erreurs mais le code ne fonctionne pas

    merci d'avance

  13. #13
    Membre averti
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juillet 2013
    Messages
    269
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 269
    Points : 434
    Points
    434
    Par défaut
    Citation Envoyé par arena-flor14213 Voir le message
    j'applique ce code
    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
     
     private JButton getJButton0() {
            if (jButton0 == null) {
    	   jButton0 = new JButton();
    	   jButton0.setText("Se connecter");
     
    	       jButton0.addActionListener(new ActionListener(){
    		   public void actionPerformed(ActionEvent e) {
    			if (jTextField0.getText.equals("") || jTextField2.getText.equals("")|| JPasswordField0.getText.equals("") )
    					{
    	JOptionPane.showMessageDialog(this, "pas de champs vide svp");
    		else
    			this.dispose();
    			   new Compte_client().setVisible(true);}
     
    				}
    			}}
    			);	
    		}


    j'ai appliqué le code autre fois après le corrige de problème d'accolade qui mais il ne fonctionne pas, il existe 3 erreur
    1/ ActionListener(){} must be inherited abstract méthode ActionListener.ActionPerformed(ActionEvent).
    2/ jTextField can not be resolved or not a jtextfield.
    3/ la méthode showMessageDialog is not applicable for the argument (new ActionListener(){},string)

    4/la methode dispose() is undefined for the type new ActionListener(){}.


    j'ai besoin de votre aide pour ce problème, je suit une débutant en java et j'ai essayé de corriger ses erreurs mais le code ne fonctionne pas

    merci d'avance
    Les accolades me paraissent toujours suspectes
    Sinon je te déconseille le ShowMessageDialog pour avertir l'utilisateur, d'un point de vue ergonomique c'est lourd (pour ne pas dire chiant) et vieillot, l'utilisateur doit cliquer sur OK...
    Vaut mieux un message visible (rouge par exemple) qui apparaisse sous ton formulaire et un focus sur le champs concerné, nous sommes en 2013
    Je regarderai ce soir, en espérant qu'on t'apporte la solution d'ici là.

  14. #14
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2013
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par VirgApps Voir le message
    Sinon je te déconseille le ShowMessageDialog pour avertir l'utilisateur, d'un point de vue ergonomique c'est lourd (pour ne pas dire chiant) et vieillot, l'utilisateur doit cliquer sur OK...
    Vaut mieux un message visible (rouge par exemple) qui apparaisse sous ton formulaire et un focus sur le champs concerné, nous sommes en 2013
    Je regarderai ce soir, en espérant qu'on t'apporte la solution d'ici là.
    un message visible (rouge par exemple). c'est une bonne idée
    j'espere que vous m’aider comment je l'appliquée.
    mais nous ne oublions pas que lorsque le message rouge apparaît sous le formulaire c-a-d tous les champs sont remplies et dans ce cas l'utilisateur doit cliquer sur la button "connecter" pour l'authentification et l'affichage de mon deuxième interface est effectué.
    merci d'avance

  15. #15
    Membre averti
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juillet 2013
    Messages
    269
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 269
    Points : 434
    Points
    434
    Par défaut
    Essaie donc ceci (copie colle tout dans une classe test si tu préfères) :
    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
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
     
    package org.swng.test;
     
    import java.awt.CardLayout;
    import java.awt.Color;
    import java.awt.Dimension;
    import java.awt.GridBagConstraints;
    import java.awt.GridBagLayout;
    import java.awt.Insets;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
     
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JPasswordField;
    import javax.swing.JTextField;
    import javax.swing.SwingUtilities;
    import javax.swing.UIManager;
     
    public class Session extends JFrame {
    	private static final long serialVersionUID = 1L;
    	final static String PANE_CONNEXION = "PaneConnexion";
    	final static String PANE_APPLICATION = "PaneApplication";
    	private JPanel paneMain;
    	private CardLayout cardLayout;
    	private static final String PREFERRED_LOOK_AND_FEEL = "javax.swing.plaf.metal.MetalLookAndFeel";
     
    	public Session() {
    		initComponents();
    	}
     
    	private void initComponents() {
    		JPanel paneConnexion = new PaneConnexion();
    		JPanel paneApplication = new PaneApplication();
     
    		// le conteneur principal qui contiendra les différents panels	
    		paneMain = new JPanel();
    		paneMain.setLayout(new CardLayout());
    		cardLayout = (CardLayout)paneMain.getLayout();
     
    		paneMain.add(paneConnexion, PANE_CONNEXION);
    		paneMain.add(paneApplication, PANE_APPLICATION);
    		cardLayout.show(paneMain, PANE_CONNEXION);
     
    		this.getContentPane().add(paneMain);
    	}
     
    	private void connexionValide() {
    		cardLayout.show(paneMain, PANE_APPLICATION);
    	}
     
    	private static void installLnF() {
    		try {
    			String lnfClassname = PREFERRED_LOOK_AND_FEEL;
    			if (lnfClassname == null)
    				lnfClassname = UIManager.getCrossPlatformLookAndFeelClassName();
    			UIManager.setLookAndFeel(lnfClassname);
    		} catch (Exception e) {
    			System.err.println("Cannot install " + PREFERRED_LOOK_AND_FEEL
    					+ " on this platform:" + e.getMessage());
    		}
    	}
     
     
    	public static void main(String[] args) {
    		installLnF();
    		SwingUtilities.invokeLater(new Runnable() {
    			@Override
    			public void run() {
    				Session frame = new Session();
    				frame.setDefaultCloseOperation(Session.EXIT_ON_CLOSE);
    				frame.setTitle("Session");
    				frame.setPreferredSize(new Dimension(400, 400));
    				frame.getContentPane().setPreferredSize(frame.getSize());
    				frame.pack();
    				frame.setLocationRelativeTo(null);
    				frame.setVisible(true);
    			}
    		});
    	}
     
    	private class PaneConnexion extends JPanel {
    		private static final long serialVersionUID = 3094601166018245873L;
    		private JTextField txtNom;
    		private JTextField txtCP;
    		private JPasswordField txtPassword;
    		private JLabel lblNom = new JLabel("Nom");
    		private JLabel lblCP = new JLabel("Code postal");
    		private JLabel lblPassword = new JLabel("Mot de passe");
    		private JLabel lblErreur = new JLabel("");
    		private JButton btnConnexion;
     
    		private PaneConnexion() {
    			super();
    			txtNom = new JTextField();
    			txtNom.setPreferredSize(new Dimension(200, 20));
    			txtCP = new JTextField();
    			txtCP.setPreferredSize(new Dimension(200, 20));
    			txtPassword = new JPasswordField();
    			txtPassword.setPreferredSize(new Dimension(200, 20));
    			lblErreur.setVisible(false);
    			lblErreur.setForeground(Color.RED);
     
    			btnConnexion = new JButton("Connexion");
    			btnConnexion.addActionListener(new ActionListener() {
    				@Override public void actionPerformed(ActionEvent e) {
    					boolean result = controlerChamps();
    					if (!result)
    						lblErreur.setVisible(true);
    					else {
    						lblErreur.setVisible(false);
    						connexionValide();
    					}
    				}
    			});
     
    			PaneConnexion.this.setLayout(new GridBagLayout());
     
    			PaneConnexion.this.add(lblNom, new GridBagConstraints(0, 0, 1, 1, 0, 0, 
    					GridBagConstraints.LINE_END, GridBagConstraints.NONE, new Insets(10, 0, 0, 10), 0, 0));
    			PaneConnexion.this.add(txtNom, new GridBagConstraints(1, 0, 1, 1, 0, 0, 
    					GridBagConstraints.LINE_END, GridBagConstraints.NONE, new Insets(10, 0, 0, 0), 0, 0));
     
    			PaneConnexion.this.add(lblCP, new GridBagConstraints(0, 1, 1, 1, 0, 0, 
    					GridBagConstraints.LINE_END, GridBagConstraints.NONE, new Insets(10, 0, 0, 10), 0, 0));
    			PaneConnexion.this.add(txtCP, new GridBagConstraints(1, 1, 1, 1, 0, 0, 
    					GridBagConstraints.LINE_END, GridBagConstraints.NONE, new Insets(10, 0, 0, 0), 0, 0));
     
    			PaneConnexion.this.add(lblPassword, new GridBagConstraints(0, 2, 1, 1, 0, 0, 
    					GridBagConstraints.LINE_END, GridBagConstraints.NONE, new Insets(10, 0, 0, 10), 0, 0));
    			PaneConnexion.this.add(txtPassword, new GridBagConstraints(1, 2, 1, 1, 0, 0, 
    					GridBagConstraints.LINE_END, GridBagConstraints.NONE, new Insets(10, 0, 0, 0), 0, 0));
     
    			PaneConnexion.this.add(lblErreur, new GridBagConstraints(0, 3, 2, 1, 0, 0, 
    					GridBagConstraints.PAGE_END, GridBagConstraints.NONE, new Insets(10, 0, 0, 0), 0, 0));
     
    			PaneConnexion.this.add(btnConnexion, new GridBagConstraints(0, 4, 2, 1, 0, 0, 
    					GridBagConstraints.PAGE_END, GridBagConstraints.NONE, new Insets(10, 0, 0, 0), 0, 0));
    		}
     
    		private boolean controlerChamps() {
    			if (txtNom.getText().length() <= 0) {
    				txtNom.requestFocus();
    				lblNom.setForeground(Color.RED);
    				lblErreur.setText("Le champs Nom doit être renseigné");
    				return false;
    			}
    			else {
    				lblNom.setForeground(Color.BLACK);
    				if (txtCP.getText().length() <= 0) {
    					txtCP.requestFocus();
    					lblCP.setForeground(Color.RED);
    					lblErreur.setText("Le champs Code Postal doit être renseigné");
    					return false;
    				}
    				else {
    					lblCP.setForeground(Color.BLACK);
    					if (txtPassword.getPassword().length <= 0) {
    						txtPassword.requestFocus();
    						lblPassword.setForeground(Color.RED);
    						lblErreur.setText("Le champs Mot de passe doit être renseigné");
    						return false;
    					}
    					else
    						lblPassword.setForeground(Color.BLACK);
    				}
    			}
     
    			lblErreur.setText("");
     
    			return true;
    		}
    	}
     
    	private class PaneApplication extends JPanel {
    		private static final long serialVersionUID = 5993978962170965179L;
     
    		private PaneApplication() {
    			this.add(new JLabel("Ma super application"));
    		}
    	}
    }
    La suite de ton application se passerait donc dans le JPanel de la fin : "PaneApplication"

    ps : désolé pour les pros du Swing, je ne suis pas expert en la matière

  16. #16
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2013
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par VirgApps Voir le message
    Essaie donc ceci (copie colle tout dans une classe test si tu préfères)
    La suite de ton application se passerait donc dans le JPanel de la fin : "PaneApplication"
    normalement ce code est de la classe Session donc normalement il affiche une interface qui contient le nom et le mot de passe ...non ?
    le code est correct pas des erreurs mais pas d’exécution puisq ne contient pas de la méthode Main
    si non moi qui ne comprend pas le code ?

    désolé du dérangement.

  17. #17
    Membre averti
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juillet 2013
    Messages
    269
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 269
    Points : 434
    Points
    434
    Par défaut
    Citation Envoyé par arena-flor14213 Voir le message
    normalement ce code est de la classe Session donc normalement il affiche une interface qui contient le nom et le mot de passe ...non ?
    le code est correct pas des erreurs mais pas d’exécution puisq ne contient pas de la méthode Main
    si non moi qui ne comprend pas le code ?

    désolé du dérangement.
    Il y a une méthode main dans la classe (je n'ai pas touché, c'est le code que que tu as mis en début de topic), sous Eclipse si tu fais "Executer comme une Application Java" ca tourne (du moins chez moi).
    Sinon oui il me parait plus propre de faire une classe contenant un main qui appelle ce JFrame.
    Avec quel IDE travailles tu ?

  18. #18
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2013
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par VirgApps Voir le message
    Il y a une méthode main dans la classe (je n'ai pas touché, c'est le code que que tu as mis en début de topic), sous Eclipse si tu fais "Executer comme une Application Java" ca tourne (du moins chez moi).
    Sinon oui il me parait plus propre de faire une classe contenant un main qui appelle ce JFrame.
    Avec quel IDE travailles tu ?
    je mets le Main mais pas d'exécution malgré pas erreurs je ne comprends pas pourquoi
    et concernant le IDE je travaille sous Eclipse Galileo

  19. #19
    Membre averti
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juillet 2013
    Messages
    269
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 269
    Points : 434
    Points
    434
    Par défaut
    Citation Envoyé par arena-flor14213 Voir le message
    je mets le Main mais pas d'exécution malgré pas erreurs je ne comprends pas pourquoi
    et concernant le IDE je travaille sous Eclipse Galileo
    Pour tester simplement, tu peux cliquer droit sur Session.java, "Run as", puis "Java Application".
    Peux tu essayer comme ça ?

  20. #20
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2013
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par VirgApps Voir le message
    Pour tester simplement, tu peux cliquer droit sur Session.java, "Run as", puis "Java Application".
    Peux tu essayer comme ça ?
    j'ai déjà fait comme vous ma dit
    mais le message dit que pas de Main malgré Main elle existe

Discussions similaires

  1. Problème affichage JTextField avec ActionListener
    Par phoenix420 dans le forum Composants
    Réponses: 5
    Dernier message: 24/06/2010, 13h29
  2. Problème entre JTextField et JTextArea en GridBagLayout
    Par d_hazem dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 30/06/2008, 16h44
  3. Problème actuallisation JTextField
    Par kenny666_cj dans le forum Composants
    Réponses: 2
    Dernier message: 18/04/2008, 11h36
  4. problème avec JTextField
    Par hammag dans le forum Composants
    Réponses: 3
    Dernier message: 15/05/2006, 14h39

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