JOptionPane Yes or No window

后端 未结 8 2169
盖世英雄少女心
盖世英雄少女心 2020-12-13 15:55

I am trying to create a message with a Yes or No button. Then a window will appear with a certain message that depends on if the user clicked Yes or No.

Here is m

相关标签:
8条回答
  • 2020-12-13 16:05

    You are writing if(true) so it will always show "Hello " message.

    You should take decision on the basis of value of n returned.

    0 讨论(0)
  • 2020-12-13 16:13

    For better understand how it works!

    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 讨论(0)
  • 2020-12-13 16:16

    Code for Yes and No 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);
    
    0 讨论(0)
  • 2020-12-13 16:24

    You can do this a whole simpler:

    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
    }
    
    0 讨论(0)
  • 2020-12-13 16:25

    You are always checking for a true condition, hence your message will always show.

    You should replace your if (true) statement with if ( n == JOptionPane.YES_OPTION)

    When one of the showXxxDialog methods returns an integer, the possible values are:

    YES_OPTION NO_OPTION CANCEL_OPTION OK_OPTION CLOSED_OPTION

    From here

    0 讨论(0)
  • 2020-12-13 16:26

    You can fix it with this:

    if(n == JOptionPane.YES_OPTION)
    {
        JOptionPane.showMessageDialog(null, "HELLO");
    }
    else
    {
        JOptionPane.showMessageDialog(null, "GOODBYE");
    }
    
    0 讨论(0)
提交回复
热议问题