Récupérer valeur

jordxxxn -  
 jordxxxnn -
Bonjour,

J'aimerais recupérer les valeurs nom et prénom de cette boite de dialogue :

public static void main(String[] args) {
JOptionPane.showInputDialog(null, "Votre nom et prénom :");
}

Merci de votre aide ! :)

2 réponses

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    Il suffit de récupérer le résultat de la méthode :

    public static void main(String[] args) 
    {
        String res = JOptionPane.showInputDialog("Votre nom et prénom :");
        System.out.println(res);
    }
    0
    1. jordxxxn
       
      Merci , enfaite c'est pour un jeu de dame , le joueur 1 entre son nom et prenom

      Je voulais remplacer c'est au blanc de jouer par c'est a 'prenom' de jouer sauf qu'il me dit res cannot no be resolved to a variable.

      private class GestionnaireEvenement extends MouseAdapter {

      String couleurControle = res;
      Position temp = null;
      etccc...

      }

      public static void main(String[] args) {
      FenetreJeu j = new FenetreJeu();
      j.setVisible(true);
      j.setLocationRelativeTo(null);
      String res = JOptionPane.showInputDialog("Votre nom et prénom :");
      j.setDefaultCloseOperation(EXIT_ON_CLOSE); // ferme le processus associé
      }
      0
    2. KX Messages postés 19031 Statut Modérateur 3 020
       
      Si tu veux te servir de "res" ailleurs dans ton code, tu dois le déclarer de sorte qu'il soit visible par l'autre code. Moi j'ai mis une variable locale pour l'exemple, vu ton problème ce serait surement un membre de classe.

      public FenetreJeu extends JFrame
      {
          private final String j1;
          
          public FenetreJeu(String nomJ1)
          {
              j1 = nomJ1;
              ...
              setLocationRelativeTo(null);
              setVisible(true); 
              setDefaultCloseOperation(EXIT_ON_CLOSE);
          }
      }
      
      public static void main(String[] args)
      {
          String nomJ1 = JOptionPane.showInputDialog("Votre nom et prénom :");
          new FenetreJeu(nomJ1);
      }
      0
    3. jrodxxxxn
       
      J'ai sa qui me gêne :

      public FenetreJeu()
      {
      try {
      initialisationPanel();
      } catch (Exception e) {
      e.printStackTrace();//affiche l'exception au moment de sont appelle


      }

      }

      Merci de bien vouloir m'aidé
      0
    4. KX Messages postés 19031 Statut Modérateur 3 020
       
      Je ne vois pas ce qui te gène, ou alors il faudrait voir le code de initialisationPanel, et je ne vois pas le rapport avec le showInputDialog...
      0
    5. jordxnnn
       
      public class FenetreJeu extends JFrame {

      private final String j1;

      public FenetreJeu(String nomJ1)
      {
      j1 = nomJ1;
      setLocationRelativeTo(null);
      setVisible(true);
      setDefaultCloseOperation(EXIT_ON_CLOSE);
      }




      //Constructeur, appelle mZthode initialisationPanel

      public FenetreJeu()
      {
      try {
      initialisationPanel();
      } catch (Exception e) {
      e.printStackTrace();//affiche l'exception au moment de sont appelle


      }

      }


      public static void main(String[] args) {
      FenetreJeu j = new FenetreJeu();
      j.setVisible(true);
      j.setLocationRelativeTo(null);
      String nomJ1 = JOptionPane.showInputDialog("Votre nom et prénom :");
      new FenetreJeu(nomJ1);
      j.setDefaultCloseOperation(EXIT_ON_CLOSE); // ferme le processus associé
      }

      Il me dit :
      The value of the field FenetreJeu.j1 is not used

      et

      The blank final field j1 may not have been initialized


      help please
      0
  2. jordxxxnn
     
    Bonjour,
    Dans mon premier fichier appelé fenetrejeu.java , j'ai fait j1 et j2 (donc les fenêtres s'affichent bien) mais dans l'autre fichier appelé Damier.java quand je veut changer :

    if(Arrive.estOccupe(couleurDepart.equals("blanc") ? "noir" : "blanc"))
    par
    if(Arrive.estOccupe(couleurDepart.equals(j1) ? j2 : j1))

    cela me met :
    j1 cannot be resolved to a variable
    j2 cannot be resolved to a variable
    j1 cannot be resolved to a variable

    Je suis perdu :(
    0
    1. KX Messages postés 19031 Statut Modérateur 3 020
       
      Parce que j1 et j2 existent dans FenetreJeu, mais pas dans Damier, il faut faire le lien entre les deux classes pour utiliser dans Damier ces valeurs, de même qu'il a fallu adapter le constructeur de FenetreJeu pour les y faire rentrer.
      0
    2. jordxxxnn
       
      public class Damier implements MethodesDamier{
      public boolean captureParUnPionPossible(Deplacement deplacement) {
      if(Arrive.estOccupe(couleurDepart.equals(j1) ? j2 : j1)){
      return (deplacement.getDeplacementY() * Math.abs(deplacement.getDeplacementX()) == (couleurDepart.equals(j2) ? 1 : -1));
      }
      return false;
      }
      }

      Comment faire ?
      Merci

      J'ai essayé ceci mais en vain :

      public class Damier implements MethodesDamier{
      public boolean captureParUnPionPossible(Deplacement deplacement, String j1, String j2) {
      if(Arrive.estOccupe(couleurDepart.equals(j1) ? j2 : j1)){
      return (deplacement.getDeplacementY() * Math.abs(deplacement.getDeplacementX()) == (couleurDepart.equals(j2) ? 1 : -1));
      }
      return false;
      }
      }
      0
    3. KX Messages postés 19031 Statut Modérateur 3 020
       
      public class Damier implements MethodesDamier
      {
          private final String j1, j2;
      
          public Damier(String nomJ1, String nomJ2)
          {
              j1=nomJ1; j2=nomJ2;
          }
          public boolean captureParUnPionPossible(Deplacement deplacement)
          {
              ...
          }
      } 
      0
    4. jordxxxnn
       
      J'ai essayé :
      public Damier(String nomJ1, String nomJ2) {
      j1=nomJ1;
      j2=nomJ2;
      plateau = new Case[8][8];
      for (int ctr = 0; ctr <= 7; ctr++)
      for (int ctr1 = 0; ctr1 <= 7; ctr1++)
      plateau[ctr][ctr1] = new Case();
      }

      mais dans l'ancien fichier j'ai cette erreur maintenant :
      e = new Damier();
      Constructor Damier not defined

      J'ai donc essayé e=new Damier(String nomJ1, String nomJ2);
      mais cela fait
      Syntax error, delete this token (x2)

      merci
      0
    5. KX Messages postés 19031 Statut Modérateur 3 020
       
      Il ne faut jamais remettre les types des données lors d'un appel aux constructeurs, ça c'est uniquement pour la déclaration, donc enlèves tes String qui ne servent à rien !
      Remarque : pour être cohérent avec le reste, c'est surement "j1" et "j2" qu'il faut mettre ici, car "nomJ1" et "nomJ2" sont les noms des paramètres dans la déclaration, mais pas dans l'appel.

      e = new Damier(j1,j2);
      0