web-dev-qa-db-fra.com

JOptionPane Fenêtre Oui ou Non

J'essaie de créer un message avec un bouton Oui ou Non. Ensuite, une fenêtre apparaîtra avec un certain message qui dépend si l'utilisateur a cliqué sur Oui ou sur Non. 

Voici mon code:

public class test{
    public static void main(String[] args){

        //default icon, custom title
        int n = JOptionPane.showConfirmDialog(
            null,
            "Would you like green eggs and ham?",
            "An Inane Question",
            JOptionPane.YES_NO_OPTION);

        if(true){
            JOptionPane.showMessageDialog(null, "HELLO");
        }
        else {
            JOptionPane.showMessageDialog(null, "GOODBYE");
        }

        System.exit(0);
    }
}

À l’heure actuelle, il affiche BONJOUR, que vous appuyiez sur Oui ou sur Non. Comment puis-je l’obtenir pour indiquer GOODBYE lorsque l’utilisateur choisit Non?

11
Josh King

"if (true)" sera toujours vrai et ne le sera jamais. Si vous voulez que cela fonctionne correctement, vous devez le faire:

    int reply = JOptionPane.showConfirmDialog(null, message, title, JOptionPane.YES_NO_OPTION);
        if (reply == JOptionPane.YES_OPTION) {
          JOptionPane.showMessageDialog(null, "HELLO");
        }
        else {
           JOptionPane.showMessageDialog(null, "GOODBYE");
           System.exit(0);
        }
64
Michaeldcooney

Vous recherchez toujours une condition vraie, votre message sera donc toujours affiché.

Vous devriez remplacer votre déclaration if (true) par if ( n == JOptionPane.YES_OPTION)

Lorsque l'une des méthodes showXxxDialog renvoie un entier, le possible les valeurs sont:

YES_OPTION NO_OPTION CANCEL_OPTION OK_OPTION CLOSED_OPTION

De ici

8
npinti

Vous pouvez le réparer avec ceci:

if(n == JOptionPane.YES_OPTION)
{
    JOptionPane.showMessageDialog(null, "HELLO");
}
else
{
    JOptionPane.showMessageDialog(null, "GOODBYE");
}
4
Stefan Koenen

Vous pouvez faire ceci plus simplement:

int test = JOptionPane.showConfirmDialog(null, "Would you like green eggs and ham?", "An insane question!");
switch(test) {
    case 0: JOptionPane.showMessageDialog(null, "HELLO!"); //Yes option
    case 1: JOptionPane.showMessageDialog(null, "GOODBYE!"); //No option
    case 2: JOptionPane.showMessageDialog(null, "GOODBYE!"); //Cancel option
}
3
user4748521

Vous écrivez if(true) ainsi le message "Hello" sera toujours affiché.

Vous devez prendre une décision sur la base de la valeur de n retournée.

2
gprathour

Code pour Oui et Non Message

      int n = JOptionPane.showConfirmDialog(  
                null,
                "sample question?!" ,
                "",
                JOptionPane.YES_NO_OPTION);

      if(n == JOptionPane.YES_OPTION)
      {
          JOptionPane.showMessageDialog(null, "Opening...");
      }
      else
      {
          JOptionPane.showMessageDialog(null, "Goodbye");
          System.exit(0);
2
Some minecrafter

Pour mieux comprendre comment ça marche! 

int n = JOptionPane.showConfirmDialog(null, "Yes No Cancel", "YesNoCancel", JOptionPane.YES_NO_CANCEL_OPTION);
    if(n == 0)
        {
        JOptionPane.showConfirmDialog(null, "You pressed YES\n"+"Pressed value is = "+n);
        }
    else if(n == 1)
        {
        JOptionPane.showConfirmDialog(null, "You pressed NO\n"+"Pressed value is = "+n);
        }
    else if (n == 2)
        {
        JOptionPane.showConfirmDialog(null, "You pressed CANCEL\n"+"Pressed value is = "+n);
        }
    else if (n == -1)
        {
        JOptionPane.showConfirmDialog(null, "You pressed X\n"+"Pressed value is = "+n);
        }

OR

int n = JOptionPane.showConfirmDialog(null, "Yes No Cancel", "YesNoCancel", JOptionPane.YES_NO_CANCEL_OPTION);
    switch (n) {
        case 0:
            JOptionPane.showConfirmDialog(null, "You pressed YES\n"+"Pressed value is = "+n);
            break;
        case 1:
            JOptionPane.showConfirmDialog(null, "You pressed NO\n"+"Pressed value is = "+n);
            break;
        case 2:
            JOptionPane.showConfirmDialog(null, "You pressed CANCEL\n"+"Pressed value is = "+n);
            break;
        case -1:
            JOptionPane.showConfirmDialog(null, "You pressed X\n"+"Pressed value is = "+n);
            break;
        default:
            break;
    }
0
Esad Međedović

Quelque chose dans ce sens ...

   //default icon, custom title
int n = JOptionPane.showConfirmDialog(null,"Would you like green eggs and ham?","An Inane Question",JOptionPane.YES_NO_OPTION);

String result = "?";
switch (n) {
case JOptionPane.YES_OPTION:
  result = "YES";
  break;
case JOptionPane.NO_OPTION:
  result = "NO";
  break;
default:
  ;
}
System.out.println("Replace? " + result);

vous voudrez peut-être aussi regarder DialogDemo

0
Narayan