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

Java Discussion :

Récupérer texte d'un System.out.


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    BTS IRIS
    Inscrit en
    Mai 2014
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : BTS IRIS
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2014
    Messages : 68
    Par défaut Récupérer texte d'un System.out.
    Bonjour, donc j'ai un petit problème que je n'arrive pas résoudre, qui doit être pourtant bien facile...
    Donc j'ai créer un programme qui permets de généré un mots de passe selon le nombre de caractère qu'on veut. Donc ensuite je fais un System.out.print(moncode); qui affiche mon mot de passe. Sauf que ce mots de passe je voudrais le récupérer pour le mettre dans un showMessageBox. Merci d'avance !

    Mon 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
    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.BorderLayout;
    import java.awt.Color;
    import java.awt.Dimension;
    import java.awt.FlowLayout;
    import java.awt.Font;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.text.NumberFormat;
    import java.util.Random;
     
    import javax.swing.JButton;
    import javax.swing.JFormattedTextField;
    import javax.swing.JFrame;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
     
    public class Fenetre extends JFrame { // Fenetre "Panneau"
        /**
             * 
             */
        private static final long serialVersionUID = 1L;
        private final Panneau pan = new Panneau();
        private final JPanel flow = new JPanel();
        private final JButton bouton = new JButton("ok");
        private final JPanel container = new JPanel();
        private final JFormattedTextField jtf = new JFormattedTextField(NumberFormat.getIntegerInstance());
     
        public Fenetre() {
            this.setTitle("Générateur mot de passe");
            this.setSize(300, 300);
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            this.setLocationRelativeTo(null);
     
            Font police = new Font("Arial", Font.BOLD, 14);
            jtf.setFont(police);
            jtf.setPreferredSize(new Dimension(150, 30)); // tAILLE DE jtEXTFILD
            jtf.setForeground(Color.RED);
            flow.setLayout(new FlowLayout());
            container.setBackground(Color.WHITE);
            container.setLayout(new BorderLayout());
            container.add(pan, BorderLayout.CENTER);
            flow.add(jtf);
            flow.add(bouton);
            container.add(flow, BorderLayout.SOUTH);
            this.setContentPane(container);
            this.setVisible(true);
     
            bouton.addActionListener(new ActionListener() {
     
                @Override
                public void actionPerformed(ActionEvent e) {
                    int i = 0;
                    String alphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_";
                    Random rand = new Random();
     
                    try {
                        i = Integer.parseInt(jtf.getText());
                    } catch (NumberFormatException e2) {
                        // n'est pas un nombre, gérer ce cas
                    }
                    if (i > 4) {
                        JOptionPane.showMessageDialog(null, "Je chiffre doit être compris entre 1 et 4", "ATTENTION",
                                JOptionPane.ERROR_MESSAGE);
                    }
     
                    switch (i) {
                        case 1:
                            for (int nb = 0; nb < 4; nb++) {
                                System.out.print(alphabet.charAt(rand.nextInt(alphabet.length())));
     
                            }
                            break;
                        case 2:
                            for (int nb = 0; nb < 6; nb++) {
                                System.out.print(alphabet.charAt(rand.nextInt(alphabet.length())));
                            }
                            break;
                        case 3:
                            for (int nb = 0; nb < 8; nb++) {
                                System.out.print(alphabet.charAt(rand.nextInt(alphabet.length())));
                            }
                            break;
                        case 4:
                            for (int nbi = 0; nbi < 10; nbi++) {
                                System.out.print(alphabet.charAt(rand.nextInt(alphabet.length())));
                            }
                            break;
     
                    }
                }
            });
        }

  2. #2
    Membre Expert Avatar de Nico02
    Homme Profil pro
    Developpeur Java/JEE
    Inscrit en
    Février 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Developpeur Java/JEE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 728
    Par défaut
    Salut,

    Pourquoi ne pas stocker ton passe dans une variable avant de l'afficher plutôt que d'essayer de récupérer la valeur dans la sortie standard ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    174
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 174
    Par défaut
    Je ne comprend pas trop ta question. Au lieu de faire un "System.out.print(monCode);" pourquoi ne pas faire "JOptionPane.showMessageDialog(frame,monCode);" où monCode est de type String et contient la valeur du retour de "alphabet.charAt(rand.nextInt(alphabet.length()))"?

  4. #4
    Membre confirmé
    Homme Profil pro
    BTS IRIS
    Inscrit en
    Mai 2014
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : BTS IRIS
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2014
    Messages : 68
    Par défaut
    Citation Envoyé par philou44300 Voir le message
    Je ne comprend pas trop ta question. Au lieu de faire un "System.out.print(monCode);" pourquoi ne pas faire "JOptionPane.showMessageDialog(frame,monCode);" où monCode est de type String et contient la valeur du retour de "alphabet.charAt(rand.nextInt(alphabet.length()))"?
    J'ai essayé avec " "JOptionPane.showMessageDialog(frame,monCode);" mais le soucis c'est que ça m'ouvre une MessageDialog pour chaque lettre du code...

  5. #5
    Membre Expert Avatar de Nico02
    Homme Profil pro
    Developpeur Java/JEE
    Inscrit en
    Février 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Developpeur Java/JEE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 728
    Par défaut
    Citation Envoyé par kewti Voir le message
    J'ai essayé avec " "JOptionPane.showMessageDialog(frame,monCode);" mais le soucis c'est que ça m'ouvre une MessageDialog pour chaque lettre du code...
    Si tu garde la même structure que ton code actuel c'est normal

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for (int nb = 0; nb < 8; nb++) {
      JOptionPane.showMessageDialog( null, alphabet.charAt(rand.nextInt(alphabet.length() ) ) );
    }
    A chaque itération il va t'afficher le caractère dans une nouvelle boite.

    Sinon la solution consiste à construire ta variable et à l'afficher ensuite.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    StringBuilder sb = new StringBuilder();
    for (int nb = 0; nb < 8; nb++) {
      sb.append( alphabet.charAt(rand.nextInt(alphabet.length() ) ) );
    }
     
    JOptionPane.showMessageDialog( null, sb.toString() );
    Et comme ça tu as une variable qui contient le passe en entier et tu peux en faire ce que tu veux.

  6. #6
    Membre confirmé
    Homme Profil pro
    BTS IRIS
    Inscrit en
    Mai 2014
    Messages
    68
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : BTS IRIS
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2014
    Messages : 68
    Par défaut
    C'est bon merci beaucoup à vous ! Faut avouer que c'était un peu stupide de ma part. Merci pour le temps consacré

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    174
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 174
    Par défaut
    Il ne faut pas le faire dans ta boucle for mais après. Tu récupères dans un StringBuilder les résultats concaténés de tes "alphabet.charAt(rand.nextInt(alphabet.length()))" puis tu affiches la boite de dialogue apès le for avec le String résultat .

    Edit: Nico02 a été plus rapide^^.

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

Discussions similaires

  1. Récupérer un élément de System.out.println
    Par aygitci dans le forum Langage
    Réponses: 5
    Dernier message: 15/03/2007, 20h54
  2. Réponses: 6
    Dernier message: 31/10/2006, 15h18
  3. [System]Rediriger le flux System.out sur un composant texte
    Par Grummfy dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 27/12/2005, 00h51
  4. [tomcat 5] [paramétrage] fichier de log System.out.println
    Par Aldo dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 22/02/2005, 14h41
  5. [Linux]Problème System.out.println + compiler
    Par Dnx dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 21/09/2004, 22h05

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