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

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   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
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
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   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
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
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   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
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
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
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   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
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
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   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
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
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   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